gpt4 book ai didi

ruby - 使用 native 扩展安装 nokogiri ruby​​ gem

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:46 25 4
gpt4 key购买 nike

我想安装一个试图构建 native 扩展的 ruby​​ gem。这种情况下的 gem 是 nokogiri。如果我执行 gem install nokogiri,则 native 扩展动态链接到 libxml、libxslt 库。我想静态链接那些库。我该怎么办?

最佳答案

这里有一些建议,但这并不容易,除非 nokogiri 包含构建标志来支持它:

  1. 如果 nokogiri 支持,你可以像这样传递构建参数来安装 gem

    gem install nokogiri -- --with-static-libxml
  2. 如果没有内置支持,您可以尝试调整用于安装 gem 的链接标志:

    gem install nokogiri -- --with-ldflags='-static'

    构建很可能会失败,因为 --with-ldflags 会覆盖所有 LDFLAGS,而且“-static”会尝试将所有内容链接为静态,因此您需要检查 mkmf.log,并相应地对待它。

  3. 如果您想手动执行此操作,一种方法是通过使用无效选项调用来使 gem 安装失败,例如:

    gem install nokogiri -- --with-ldflags

    这将导致安装失败并显示如下消息:

    Building native extensions.  This could take a while...
    ERROR: Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    ruby extconf.rb --with-ldflags

    因此您应该能够自己构建 gem,然后在完成安装后使用(参见 gem help install):

      gem spec ../../cache/nokogiri-1.4.1.gem --ruby > \
    ../../specifications/nokogiri-1.4.1.gemspec

关于ruby - 使用 native 扩展安装 nokogiri ruby​​ gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com