问题为Windows Ruby版本2.3.3安装libxml-ruby。缺少-lxml2中的xmlParseDoc()

时间:2017-03-08 21:43:00

标签: ruby windows rubygems libxml2

我查看了涉及libxml-ruby gem的安装问题的大多数答案,并且在没有解决方案的情况下我遇到了这个问题。我目前正在运行Ruby 2.3.3。

这是我正在使用的当前命令:

gem install libxml-ruby -- --with-xml2-lib=C:\Ruby-2.3.3\lib --with-xml2-include=C:\Ruby-2.3.3\include

由此产生的问题是:

checking for libxml/xmlversion.h in /opt/include/libxml2,/opt/local/include/libxml2,
/usr/local/include/libxml2,
/usr/include/libxml2... yes
checking for xmlParseDoc() in -lxml2... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

xmlParseDoc()在Parser.h中,但在某些我找不到的地方丢失了。有没有其他人遇到同样的问题,并找到了解决方案?

当我使用相同的命令降级到libxml-ruby 2.7时,我得到了它的工作。我还想弄清楚为什么新版本无法安装。我最终需要2.8.0或更高版本,这导致了这个问题。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。对我有用的是我首先按照solution中的说明进行操作。在我不得不去找libiconv的一些遗失的东西之后;我从here得到了那些。我提取了它的lib并包含内容,就像上面的解决方案一样(lib进入Ruby lib,包含在Ruby包含中)。我必须在encoding.h中更改#include <iconv.h>。这需要更改为#include <path-to-/iconv.h>,之前已提取到Ruby的include目录中。我能够运行gem install libxml-ruby -- with-xml2-include=C:/Ruby23/include/libxml2 --with-iconv-include=C:/Ruby23/include