错误:安装ffi时出错:错误:无法构建本地扩展宝石。

23

我在64位的Mac上遇到了这个错误,并且我的机器上已经安装了Xcode。

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

/Users/jreddy/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb
checking for ffi.h in /usr/local/include... no
checking for rb_thread_blocking_region()... no
checking for ruby_thread_has_gvl_p()... no
checking for ruby_native_thread_p()... no
checking for rb_thread_call_with_gvl()... no
creating extconf.h
creating Makefile

make
sh: make: command not found

2
重新安装了Xcode工具!它起作用了。 - reddyonrails
你需要先安装开发工具。 请运行 xcode-select --install 命令,检查是否已安装 XCode 命令行工具。来源:https://github.com/ffi/ffi/issues/937#issuecomment-1073265562 - Chaki_Black
14个回答

41

许多用户试图更新Xcode命令行工具,因此会着陆于此回答。最简单的方法是删除旧版本工具,并安装新版本。

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

一个弹出窗口将会出现并引导你完成剩下的过程。

如果 xcode 安装正确,但你仍然遇到问题,请尝试按照以下方式安装 ffi:

gem install ffi -v '1.9.18' -- --with-cflags="-Wno-error=implicit-function-declaration"

gem install ffi -v '1.9.18' -- --with-cflags="-Wno-error=implicit-function-declaration" 对我有效。谢谢。 - anjarwidi83

13
这个方法对我起了作用: 使用brew link libffi --force命令

一样。似乎仅仅使用brew安装libffi是不够的。 - DonKoko

13

我使用Homebrew,所以在执行brew install libffi后,这个 gem 就为我安装好了。我已经激活了 Xcode 4.2 工具(通过 xcode-select)。我必须关闭并打开新的终端窗口,才能使 home-brew 安装被 gem 安装识别。但是我只能在 ruby 1.8.7 上使用它,而在 1.9.3 上无法使用(使用 rvm)。


brew install ruby 对我有用,而 brew install libffi 则没有。 - scottgwald

6
如果您使用brew安装libffi并仍无法正常工作,则可以尝试执行以下操作:
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.2.14/lib/pkgconfig/
$ gem install ffi

3
这个帮了我(其他选项没用) - Artem Vasiliev

2

1
我不必遵循那些额外的步骤 - 只需更新XCode并再次运行bundle install即可完成工作。谢谢! - Phil Gyford

2

我也在使用OS X Lion操作系统。我重新安装了XCode,并通过bundle install成功安装了ffi。


1

对我而言,以下方法有效:

当执行React Native ios时遇到问题:


bundle install

在安装 ffi (1.15.5) 时出现错误,无法继续进行 Bundler。 请确保在绑定之前:gem install ffi -v'1.15.5' --source 'https://rubygems.org/' 成功。

通过执行此操作解决此错误。

export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"



以上列出的“exports”应该放在哪里? - alyus

1

我在OSX 10.10.15上使用rvm和ruby-2.0.0-p481时遇到了这个问题。解决方法如下:

sudo xcodebuild -license

它不会修复所有情况,但可能会修复一些情况。


1

在我的Mac OS-X Maverics上更新X-code使其正常工作


1
如果 gem install ffi -v '1.9.21' --source 'https://rubygems.org/ 没有解决问题。那么在 Mac 上,ffi-1.19.21 似乎正在尝试使用 ffi_prep_closure_loc() 和系统 libffi,但它没有。

尝试这个临时解决方案:

gem install ffi -- --disable-system-libffi

更多细节请参见: https://github.com/ffi/ffi/issues/791


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接