0

有一些关于类似问题的主题,但没有一个被证明是有效的。我尝试在 github 页面上询问也没有运气。

当我尝试标准命令时:

gem install libxml-ruby

我收到安装程序找不到 libxml2.dll 的错误。我发现了一个存在类似问题的 stackoverflow 线程,并在此处遵循用户指南,了解在哪里获取丢失的库以及在哪里包含它们。

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

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

我现在收到一个错误,安装程序在我的 C:\Ruby200\include 目录中找不到“iconv.h”头文件。

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 的项目时都会回到它,并且很乐意接受任何建议。

非常感谢。

4

1 回答 1

0

我没有成功安装 libxml 2.9.0 版,但 2.7.0 工作得很好。我应该指定我正在运行 Windows 7 和 Ruby 2.0 32 位。这是我必须做的:

-我在这里关注了Wik 的回复,从他们 mingw64 中获取了所有丢失的库。诚然,我不确定我是否需要所有这些,但我在这里采取了一种霰弹枪的方法。

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

Ruby200\lib\ruby\gems\2.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,并且实际上可以使用了。

于 2016-09-02T14:53:50.157 回答