M1芯片Mac Big Sur安装webp-ffi gem找不到C头文件报错求助
问题核心原因
该报错是M1芯片Mac下Homebrew的默认安装路径为/opt/homebrew,和Intel架构的/usr/local不同,gem编译原生扩展时默认不会读取该路径下的头文件。你之前修改.zshrc不生效的核心原因有两个:
sudo执行命令时会重置当前用户的所有环境变量- 用rbenv管理的Ruby版本不需要加
sudo安装gem,sudo会切换到root环境,调用系统自带的Ruby而非rbenv配置的2.6.6版本,路径完全不匹配
解决步骤
1. 确认依赖安装
先确保jpeg依赖已经通过Homebrew安装:
brew install jpeg # 若使用libjpeg-turbo则执行 brew install libjpeg-turbo
2. 单独安装webp-ffi gem
执行以下命令直接指定jpeg的头文件和库路径,无需加sudo:
gem install webp-ffi -- --with-jpeg-include=$(brew --prefix jpeg)/include --with-jpeg-lib=$(brew --prefix jpeg)/lib
如果使用的是libjpeg-turbo,替换命令中所有jpeg为jpeg-turbo即可。
3. 适配Bundler(Rails项目场景)
如果你的Rails项目用Bundler管理依赖,执行以下配置让bundle install自动识别路径:
bundle config build.webp-ffi --with-jpeg-include=$(brew --prefix jpeg)/include --with-jpeg-lib=$(brew --prefix jpeg)/lib
配置完成后正常执行bundle install即可。
内容的提问来源于stack exchange,提问作者Connor
相关产品推荐
相关产品推荐

