在 windows 上为 ruby 安装 libxml gem 的问题

Issues installing libxml gem for ruby on windows

有几个主题与此类似,但 none 被证明是有效的。我试图在 github 页面上询问,但也没有成功。

当我尝试标准命令时:

gem install libxml-ruby

我收到安装程序找不到 libxml2.dll 的错误。我发现了一个有类似问题的 Whosebug 线程,并遵循了用户的指导方针 here 在哪里获取丢失的库以及在哪里包含它们。

如果我使用以下命令向安装命令添加参数以指向缺少库的目录:

gem install libxml-ruby -- with-xml2-include=C:\Ruby200\include\libxml2 --with-iconv-include=C:\Ruby200\include

我现在收到安装程序无法在我的 C:\Ruby200\include 目录中找到“iconv.h”header 的错误。

C:\Users\gonz102>gem install libxml-ruby -- with-xml2-include=C:/Ruby200/include
/libxml2 --with-iconv-include=C:/Ruby200/include
Temporarily enhancing PATH to include DevKit...
Building native extensions with: 'with-xml2-include=C:/Ruby200/include/libxml2 -
-with-iconv-include=C:/Ruby200/include'
This could take a while...
ERROR: Error installing libxml-ruby:
ERROR: Failed to build gem native extension.

C:/Ruby200/bin/ruby.exe extconf.rb with-xml2-include=C:/Ruby200/include/libx
ml2 --with-iconv-include=C:/Ruby200/include
checking for libxml/xmlversion.h in /opt/include/libxml2,/opt/local/include/libx
ml2,/usr/local/include/libxml2,/usr/include/libxml2... yes
checking for xmlParseDoc() in -lxml2... yes
checking for rb_io_bufwrite() in ruby/io.h... yes
creating extconf.h
creating Makefile

make "DESTDIR="
compiling libxml.c
In file included from C:/Ruby200/include/libxml2/libxml/parser.h:810:0,
from ruby_libxml.h:7,
from libxml.c:1:
C:/Ruby200/include/libxml2/libxml/encoding.h:28:19: fatal error: iconv.h: No suc
h file or directory
compilation terminated.
make: *** [libxml.o] Error 1

Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/libxml-ru
by-2.9.0 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/libxml-ruby-2.9.0/ext/libx
ml/gem_make.out

如果有人对接下来要调查的内容或可能的解决方案有任何建议,我将不胜感激。我已经被这个困扰了很长时间,每当我 运行 进入一个带有 libxml 的项目并且很乐意接受任何建议时都会回来。

非常感谢。

我安装 libxml 版本 2.9.0 失败,但 2.7.0 工作正常。我应该指定我是 运行 windows 7 和 Ruby 2.0 32 位。这是我必须做的:

-我按照 Wik 的回复 here,从他们的 mingw64 中获取了所有缺失的库。不可否认,我不确定我是否需要所有这些,但我在这里采取了一种散弹枪的方法。

在我的系统路径中添加了以下内容:

Ruby200\lib\ruby\gems.0.0\gems\libxml-ruby-2.7.0-x86-mingw32\lib\libs

在命令行中执行了以下操作:

gem install libxml-ruby -v2.7.0 -- with-xml2-include:=C/Ruby200/include/libxml2 --with-iconv-include:=C:/Ruby200/include

在那之后,我 gem,终于安装并实际可用了。