2015-04-27 3 views
0

Если есть относительно простой способ сделать go + libxml2 + gokogiri работать над окнами?Перейти lang: как установить libxml2/gokogiri на windows

Я имею в виду, что я могу его установить (но на данный момент я не могу, застрял с Package libxml-2.0 was not found in the pkg-config search path), но тогда я должен предоставить свою утилиту другим людям, которые никогда не смогут (или не пожелают) установить зависимости Lall libxml2, изменить PATH и т.д. на окнах ...

Она работает безупречно на Ubuntu ...

Я нашел это https://github.com/moovweb/gokogiri/issues/49 Thats смешно с установкой Gimp 2 (что ?!), но я до сих пор не могу заставить его работать с такой ошибкой, я думаю, может быть проблема с PATH, но все PATH установлены

$ go get github.com/moovweb/gokogiri 
# github.com/moovweb/gokogiri/help 
Documents\go\src\github.com\moovweb\gokogiri\help\help.go:6:25: fatal error: lib 
xml/tree.h: No such file or directory 
#include <libxml/tree.h> 
         ^
compilation terminated. 
# github.com/moovweb/gokogiri/xpath 
Documents\go\src\github.com\moovweb\gokogiri\xpath\expression.go:4:26: fatal err 
or: libxml/xpath.h: No such file or directory 
#include <libxml/xpath.h> 
         ^
compilation terminated. 
+1

Вы подтвердили, что существует подраздел вашего пути + '/libxml/tree.h | xpath.h'? Ошибка просто говорит, что этих файлов нет, поэтому, если они существуют, проблема почти наверняка будет вашим путем. Что касается предоставления вашей утилиты другим людям, вам, вероятно, понадобится пакетный скрипт. – evanmcdonnal

+0

да, я боялся о том, что пакетный скрипт, слишком много усилий ... может быть, я просто переписываю с помощью стандартной библиотеки html ... Или даже с регулярным выражением ... Я еще раз проверю ПУТЬ завтра ... – MikeKlemin

ответ

2

Вы боретесь, потому что сложно комбинировать пакеты, которые были созданы разными людьми для разных целей, и настроить вашу среду правильно. Я думаю, что лучше всего использовать MSYS2, среду для Windows, которая обеспечивает согласованный набор пакетов для таких вещей, как gcc, go, libxml2 и iconv. В MSYS2 есть менеджер пакетов (pacman), который помогает вам легко установить их и обновить.

Я не занимаюсь программированием с Go, но я знаком с MSYS2, и мне кажется, что я смог установить gokogiri с помощью MSYS2. Вы должны открыть «MinGW-w64 Win64 Shell» MSYS2 из меню Пуск (mingw64_shell.bat) и попробуйте запустить следующие команды:

pacman -S mingw-w64-x86_64-{gcc,go,libxml2,iconv} 
export GOROOT=/mingw64/ 
export GOPATH=/c/Users/David/Documents/goproj/ 
mkdir -p $GOPATH 
go git github.com/moovweb/gokogiri 

Я думаю GOPATH должен быть установлен в директорию вашего проекта. Если вы столкнулись с ошибкой, это может быть связано с тем, что требуется пакет pacman, который я не перечислял здесь.

Строка mingw-w64-x86_64-{gcc,go,libxml2,iconv} получает расширен Bash в следующий список пакетов:

mingw-w64-x86_64-gcc 
mingw-w64-x86_64-go 
mingw-w64-x86_64-libxml2 
mingw-w64-x86_64-iconv 

Если вы на самом деле с помощью 32-разрядной Windows, заменить x86_64 с i686 в инструкции выше.

Если вам интересно, скрипты для создания этих пакетов здесь: https://github.com/Alexpux/MINGW-packages

Как отказ, я на самом деле не компилируюсь любая программа идет в MSYS2, так что может быть большие проблемы, я не в курсе.

Кроме того, один из основных разработчиков MSYS2 (alexpux) сказал, что это в # msys2 IRC чат на 2015-06-21:

Мы не строим идти в течение длительного времени. Этот пакет в очень WIP состоянии Также см https://github.com/Alexpux/MINGW-packages/issues/421

Таким образом, вы, возможно, потребуется, чтобы исправить некоторые проблемы, связанные с пакетом MSYS2 Go и пересобрать его сами, чтобы действительно сделать эту работу. Но у вас есть сценарий PKGBUILD, который использовался для его создания, поэтому, возможно, это будет менее сложно, чем то, что вы пытаетесь сделать прямо сейчас, что связано с компиляцией/сбором каждой зависимости gokogiri.

MSYS2 сделает вашу другую установку go, libxml2 и iconv устаревшей. Вы можете удалить эти вещи, когда будете работать в среде MSYS2.

+0

Привет, спасибо! Я обязательно буду использовать MINGW, когда я @ окна! Что касается вопроса thsi, я решил, что я не буду использовать libxml, так как есть некоторые проблемы с libxml или с Go, что приводит к огромному потреблению памяти при использовании libxmling thouthands документов, независимо от того, как вы закрываете, откладывая и даже заставляя мусор собирать ... что угодно ... – MikeKlemin

0

Если вы используете визуальную студию и хотите добавить зависимость от своего проекта, тогда просто установите ее с помощью диспетчера пакетов NuGet, это самый простой способ. Команда установки: Install-Package libxml2

Смежные вопросы