You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS 14.0环境下执行sudo gem install ffi安装失败求助

ffi 与 macOS 14.0 兼容性及安装失败解决方案

问题信息

安装命令

sudo gem install ffi

错误信息

ld: warning: -multiply_defined is obsolete
ld: warning: search path '/AppleInternal/Library/BuildRoots/98ed8ad3-3356-11ee-9b53-aead88ae2785/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.Internal.sdk/usr/local/lib' not found
ld: archive member '/' not a mach-o file in '/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/ext/ffi_c/libffi-universal-darwin23/.libs/libffi_convenience.a'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ffi_c.bundle] Error 1

环境信息

Ruby: 2.6.0
MacOS: 14.0
Xcode: 15.0.1

兼容性说明及解决方法

ffi 并非与 macOS 14.0 完全不兼容,你遇到的报错是因为旧版本 ffi(1.16.3)与 Xcode 15.0.1 的链接器行为不匹配,同时系统自带的 Ruby 2.6.0 版本较老,在新系统环境下编译扩展易出现问题。

可尝试以下解决方式:

  • 升级 ffi 版本:指定安装适配了 macOS 14 和 Xcode 15 的更新版本,比如 1.17.x 及以上:
    sudo gem install ffi -v 1.17.0
    
  • 使用 Ruby 版本管理器:通过 rbenv 或 rvm 安装较新的 Ruby 版本(如 3.2+),新版本对新系统兼容性更好,再安装 ffi:
    # 示例:用 rbenv 安装 Ruby 3.2.2
    rbenv install 3.2.2
    rbenv global 3.2.2
    gem install ffi
    
  • 指定 SDK 路径:若坚持使用系统 Ruby,可手动指定 macOS SDK 路径,避免链接器查找内部路径失败:
    sudo SDKROOT=$(xcrun --show-sdk-path) gem install ffi
    

内容的提问来源于stack exchange,提问作者arderbud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:54:58