MacBook M1安装CocoaPods报错:执行sudo arch -x86_64 gem install ffi求助
解决M1 Mac(macOS Ventura 13.0)安装ffi gem报错的方案
方案一:直接指定编译参数安装
针对报错中出现的implicit function declaration编译错误,可通过添加编译参数绕过,同时确保依赖的libffi路径正确:
- 先安装x86架构的libffi(需已安装Homebrew,若未安装可先执行
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装x86版本的Homebrew)arch -x86_64 brew install libffi - 执行带参数的gem安装命令:
arch -x86_64 gem install ffi -- --with-cflags="-Wno-error=implicit-function-declaration" --with-ffi-dir=$(arch -x86_64 brew --prefix libffi)
注意:尽量避免使用
sudo,避免系统Ruby环境权限冲突;若必须用sudo,需确保整个命令都在x86架构下执行。
方案二:用Ruby版本管理器安装(更稳妥)
系统自带Ruby常存在权限和环境兼容问题,用rbenv管理x86架构的Ruby可彻底规避:
- 安装x86版本的rbenv:
arch -x86_64 brew install rbenv - 初始化rbenv(按照终端提示添加到shell配置文件,比如
~/.zshrc):arch -x86_64 rbenv init - 重启终端后,安装一个兼容的x86 Ruby版本(比如3.2.2):
arch -x86_64 rbenv install 3.2.2 - 设置全局使用该Ruby版本:
rbenv global 3.2.2 - 直接安装ffi:
gem install ffi
前置检查
- 确保已安装Rosetta 2:执行
softwareupdate --install-rosetta(按提示输入同意) - 确保Xcode Command Line Tools已安装:执行
xcode-select --install,若已安装可执行xcode-select --reset重置后再检查
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

