Mac下构建ffi gem原生扩展失败,求助解决方法
解决ffi gem原生扩展编译失败(C++预处理器sanity check错误)
步骤1:安装系统编译依赖
macOS环境下,先确保Xcode命令行工具已安装:
xcode-select --install
通过Homebrew安装libffi系统库:
brew install libffi
步骤2:修复C++预处理器路径问题
报错提示/lib/cpp无法通过sanity check,是因为系统找不到正确的C++预处理器。可临时指定正确的预处理器路径后安装ffi:
CPP="/usr/bin/clang -E" gem install ffi -v 1.15.4
步骤3:指定系统libffi路径编译ffi gem
强制ffi gem使用系统已安装的libffi库,避免源码编译失败:
gem install ffi -v 1.15.4 -- --with-libffi-dir=$(brew --prefix libffi)
若未使用Homebrew,改用系统默认libffi路径:
gem install ffi -v 1.15.4 -- --with-libffi-dir=/usr/lib
步骤4:清理缓存后重新安装CocoaPods
清理bundler缓存,避免旧编译残留影响:
bundle clean --force
重新执行CocoaPods安装:
bundle install
内容的提问来源于stack exchange,提问作者Quinlan Jung
相关产品推荐
相关产品推荐

