【问题标题】:ffi fails to build via bundler on MacOS 10.8.5ffi 无法在 MacOS 10.8.5 上通过捆绑程序构建
【发布时间】:2014-05-12 03:53:31
【问题描述】:

问题: bundler 无法构建 ffi,因此我的 Rails 应用程序在我的开发环境中损坏。 我读过的所有帖子都没有适合我的解决方案。我在许多 Rails 应用程序中遇到相同的错误。

我还可以采取哪些其他故障排除步骤? 我该如何解决这个问题?

背景: 在从 Snow Leopard 升级到 Mountain Lion、Xcode 升级、Clean Homebrew 安装后,我对 rvm 进行了全新安装。现在我正在尝试重新创建我的 rails 应用程序使用的 gemset。我做到了:

gem install rails -v3.2.16 (to get the base rails gems installed)
rvm gemset import ruby-1.9.3-p545@CLIENTNAME.gems (to import gems)
bundle install (to install dependencies and resync gemfile.lock)

问题: 捆绑安装失败并显示以下错误消息:

An error occurred while installing ffi (1.9.3), and Bundler cannot continue.
Make sure that gem install ffi -v '1.9.3' succeeds before bundling.

完整的 gem_make.out 在这里:https://gist.github.com/mattmartini/b2f8ad3b4e6c57325d38

mkmf.log 在这里:https://gist.github.com/mattmartini/d3256cb52e5eafb2346b

config.log 在这里:https://gist.github.com/mattmartini/69407e118e92cadda2b0

我想继续使用 ruby​​ 1.9.3,因为生产服务器正在使用它。

观察: 引发的错误之一是“C 编译器无法创建可执行文件”——这不是真的。我可以毫无问题地编译 C 程序和打包器构建 nokogiri。

我刚刚注意到,由 rvm 安装(连同 gcc46)的 libffi 只是小桶。 bundler 是否可以使用 lib 来创建 gem?

环境:

Mac OS X 10.8.5 (Mountain Lion)
Xcode 5.0.2 (command line tools installed)
Homebrew 0.9.5 (recent fresh install)
rvm 1.25.25 (stable)
ruby 1.9.3-p545
libffi 3.0.13 (brew via rvm)
gcc46 (brew via rvm)

已审核: 我查看了许多类似问题的帖子,但没有一个适合我的解决方案,包括:

https://github.com/ffi/ffi/issues/286

注意我这里有一堆堆栈溢出链接,但我无法向他们提交这个问题。

【问题讨论】:

  • 按照堆栈溢出帖子的建议,我在重试捆绑安装之前删除了 ~/.gem、.bundle、vendor.cache 和 Gemfile.lock。抛出了同样的错误。

标签: ruby-on-rails bundler ffi


【解决方案1】:

我对 libffi 只是小桶的预感是正确的。链接 libffi 后,bundle 使用了这个 lib 而不是尝试编译它。这解决了安装 gem 的问题,但不能解决它无法编译的原因。

由于库是桶,只有你必须强制它链接:

brew link libffi --force

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多