4

在 OSX Mountain lion 上运行 gem install ffi 会产生以下错误。

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

    /beweiche.rvm/rubies/ruby-1.9.3-p374/bin/ruby extconf.rb
/beweiche.rvm/rubies/ruby-1.9.3-p374/bin/ruby: invalid option -H  (-h will show valid options) (RuntimeError)


Gem files will remain installed in /beweiche.rvm/gems/ruby-1.9.3-p374@hugo/gems/ffi-1.8.1 for inspection.

任何本机扩展都会发生这种情况。使用系统 ruby​​ (1.8.7) 我可以安装带有本机扩展的 gem。它甚至适用于 1.9.3。但是在“安装了宝石更新”之后,我被卡住了。

在我的机器上安装了 gem:

bundler (1.2.3)
coderay (1.0.9)
diff-lcs (1.2.4)
graph (2.5.2)
method_source (0.8.1)
pry (0.9.12.1)
rake (10.0.3)
rspec (2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
rspec-mocks (2.13.1)
rubygems-bundler (1.1.0)
rvm (1.11.3.6)
slop (3.4.4)

这似乎是某个地方的愚蠢错字,但我找不到在哪里。

任何提示都非常感谢。

同时,我在我的 rvm 中安装了 ruby​​ 2.0.0-rc1。使用此设置,我可以安装带有本机扩展的 gem。我在 1.9.3 中将 gem 升级到与 2.0.0 中相同的版本,但问题仍然存在。

4

1 回答 1

0

你用homebrew吗?brew install libffi如果是这样,请尝试在运行之前通过安装 ffi bundle

你为什么跑gem update installed?您应该让 Bundler 为您处理更新:bundlebundle update gem_xyz. 如果要添加新的 gem,只需将其添加到 Gemfile。

我假设当您更新所有 gem 时,其中一个已更新为依赖于 FFI。您可以通过搜索ffiin来验证这一点Gemfile.lock。一旦您看到哪个 gem 依赖于它,您就可以决定是否将该 gem 修复到您的 Gemfile 中的早期版本,并完全摆脱依赖关系,或者继续安装 lib。

于 2013-07-09T04:13:36.327 回答