windows - Go 语言 : how to install libxml2/gokogiri on windows

标签 windows go libxml2

是否有相对简单的方法让 go + libxml2 + gokogiri 在 windows 上运行?

我的意思是我可能可以安装它(但目前我不能,卡在 Package libxml-2.0 was not found in the pkg-config search path),但我需要将我的实用程序提供给其他人,他们将永远无法(或希望)在 Windows 上安装 lall libxml2 依赖项、修改 PATH 等...

它在 Ubuntu 上完美运行...

我找到了这个 https://github.com/moovweb/gokogiri/issues/49安装 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.

最佳答案

您正在苦苦挣扎,因为很难组合由不同人为不同目的构建的包并正确设置您的环境。我认为最好使用 MSYS2 ,一个 Windows 环境,它为 gcc、go、libxml2 和 iconv 等东西提供了一组一致的包。 MSYS2 有一个包管理器 (pacman),可以帮助您轻松安装它们并保持更新。

我不怎么用 Go 编程,但我熟悉 MSYS2,而且我似乎能够使用 MSYS2 安装 gokogiri。您应该从开始菜单 (mingw64_shell.bat) 打开 MSYS2 的“MinGW-w64 Win64 Shell”,然后尝试运行这些命令:

pacman -S mingw-w64-x86_64-{gcc,go,libxml2,iconv}
export GOROOT=/mingw64/
export GOPATH=/c/Users/David/Documents/goproj/
mkdir -p $GOPATH
go get 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 中编译任何 go 程序,所以可能存在我不知道的大问题。

此外,MSYS2 (alexpux) 的主要开发人员之一在 2015-06-21 的#msys2 IRC 聊天中说:

We not build go for a long time. This package in very WIP state Also see https://github.com/Alexpux/MINGW-packages/issues/421

因此,您可能需要修复 MSYS2 Go 包的一些问题,然后自行重新编译它才能真正发挥作用。但是你有用于构建它的 PKGBUILD 脚本,所以这可能比你现在尝试做的事情更容易,后者涉及编译/收集 gokogiri 的每个依赖项。

MSYS2 会使您安装的其他 go、libxml2 和 iconv 过时。一旦您的 MSYS2 环境正常运行,您就可以删除这些内容。

关于windows - Go 语言 : how to install libxml2/gokogiri on windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901728/

相关文章:

windows - vim - 如何在复制文本时保持光标位置

mongodb - $lookup 和 $match Mongodb golang

linux - libxml2.so.2 : cannot open shared object file: No such file or directory

c - 如何使用 MinGW 在 Windows 上使用 OpenSSL 编译程序

android - 无法在 Windows 上最近安装的 Android Studio 上构建 Support7Demos

templates - 嵌套 golang 模板中的变量

go - Go 上下文取消函数的最佳实践

c++ - 尝试在 OS X 10.6 上安装 libxml++

ruby - Nokogiri 未安装?

python - #include <Python.h> Windows 10 修复没有这样的文件或目录