MacOS下安装rmagick报Gem::Ext::BuildError原生扩展编译失败求助
问题原因
- 初始报错是因为Homebrew安装的
imagemagick@6属于keg-only版本(默认不链接到系统全局路径),rmagick编译时无法通过pkg-config找到其对应的库和头文件 - 手动修改Homebrew的shim目录属于错误操作,会破坏Homebrew的正常运行逻辑
- 后续的开发工具报错是因为Xcode命令行工具的路径没有被正确指向,编译时无法调用正确的clang编译环境
解决方案
- 先恢复误改的Homebrew目录:
sudo rm -rf /opt/homebrew/Library/Homebrew/shims/mac/super/pkg-config
- 重置Xcode命令行工具路径,确保编译环境正常:
sudo xcode-select --switch /Library/Developer/CommandLineTools
如果执行后提示需要安装命令行工具,运行以下命令完成安装后再继续:
xcode-select --install
- 临时指定imagemagick@6的pkgconfig路径,再执行rmagick安装:
export PKG_CONFIG_PATH="/opt/homebrew/opt/imagemagick@6/lib/pkgconfig" gem install rmagick -- --with-opt-dir="$(brew --prefix imagemagick@6)"
如果上述步骤执行后仍安装失败,可先强制链接imagemagick@6到全局路径再安装:
brew link imagemagick@6 --force gem install rmagick
如果后续需要取消imagemagick@6的全局链接,执行:
brew unlink imagemagick@6
内容的提问来源于stack exchange,提问作者AnthoGr
相关产品推荐
相关产品推荐

