首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libxml-ruby未能构建本机扩展。

libxml-ruby未能构建本机扩展。
EN

Stack Overflow用户
提问于 2016-05-27 12:57:10
回答 3查看 836关注 0票数 1

我在El Capitan上使用ruby 2.1.10,并试图安装libxml-ruby -v '2.7.0‘。

当我运行gem install libxml-ruby -v '2.7.0时,我得到了这个

代码语言:javascript
复制
Building native extensions.  This could take a while...
ERROR:  Error installing libxml-ruby:
    ERROR: Failed to build gem native extension.

    /Users/stuartpearman/.rvm/rubies/ruby-2.1.10/bin/ruby -r ./siteconf20160527-15602-1pq16mj.rb extconf.rb
checking for socket() in -lsocket... no
checking for gethostbyname() in -lnsl... no
checking for atan() in -lm... yes
checking for inflate() in -lz... yes
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for libxml/xmlversion.h... yes
checking for rb_io_bufwrite() in ruby/io.h... yes
creating extconf.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling libxml.c
compiling ruby_xml.c
ruby_xml.c:612:23: warning: assigning to 'const char *' from 'xmlChar *' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
  xmlTreeIndentString = xmlStrdup((xmlChar *)StringValuePtr(string));
                      ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
compiling ruby_xml_attr.c
compiling ruby_xml_attr_decl.c
ruby_xml_attr_decl.c:57:53: warning: passing 'const xmlChar *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
    return rxml_new_cstr((const char*) xattr->name, xattr->doc->encoding);
                                                    ^~~~~~~~~~~~~~~~~~~~
./ruby_xml_encoding.h:11:51: note: passing argument to parameter 'xencoding' here
VALUE rxml_new_cstr(const char* xstr, const char* xencoding);
                                                  ^

整个错误大约是600行,但更多的是相同的。

我已经在互联网上搜索了一个解决方案,并尝试了许多不同的东西,但没有运气。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-16 16:49:50

问题是,我的mac上没有安装一些必要的实用程序。

我通过运行几个brew安装程序来解决这个问题:

代码语言:javascript
复制
brew install libxml2 libxslt

代码语言:javascript
复制
brew install coreutils

在安装coreutils之后,我所遇到的问题中的一个神奇地消失了。

另外,在安装Nokogiri时,我不得不做一些非常接近于此的事情:

代码语言:javascript
复制
gem install nokogiri --use-system-libraries -- --with-ldflags

虽然我不记得我所用的确切选项

票数 0
EN

Stack Overflow用户

发布于 2016-06-15 04:00:00

我在libxml2-dev中安装了sudo apt-get install -y libxml2-dev

然后gem i libxml-ruby成功了。

票数 3
EN

Stack Overflow用户

发布于 2016-05-27 12:59:50

安装最新版本的libxml-ruby,它会立即工作。

代码语言:javascript
复制
gem install libxml-ruby
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37484161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档