ruby-on-rails - Ruby on Rails webp-ffi gem 安装失败。找不到 C 头文件
问题描述
Mac OS Big Sur M1 芯片 Ruby 2.6.6 Rails 6.0.4
sudo gem install webp-ffi
Building native extensions. This could take a while...
ERROR: Error installing webp-ffi:
ERROR: Failed to build gem native extension.
current directory: /Users/$MYUSERNAME/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/webp-ffi-0.3.1/ext/webp_ffi
/Users/$MYUSERNAME/.rbenv/versions/2.6.6/bin/ruby -rrubygems /Users/$MYUSERNAME/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/rake-13.0.6/exe/rake RUBYARCHDIR\=/Users/$MYUSERNAME/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/-darwin-20/2.6.0/webp-ffi-0.3.1 RUBYLIBDIR\=/Users/$MYUSERNAME/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/-darwin-20/2.6.0/webp-ffi-0.3.1
mkdir -p aarch64-darwin
clang -fexceptions -O -fno-omit-frame-pointer -fno-strict-aliasing -DHAVE_PUTS=1 -DHAVE_WEBPDECODERCONFIG=1 -DHAVE_WEBPGETINFO=1 -DHAVE_STDIO_H=1 -o aarch64-darwin/jpegdec.o -c ./jpegdec.c
./jpegdec.c:4:10: fatal error: 'jpeglib.h' file not found
#include <jpeglib.h>
^~~~~~~~~~~
1 error generated.
rake aborted!
Command failed with status (1): [clang -fexceptions -O -fno-omit-frame-poin...]
Tasks: TOP => default => aarch64-darwin/libwebp_ffi.bundle => aarch64-darwin/jpegdec.o
(See full trace by running task with --trace)
rake failed, exit code 1
我已确保已安装 webp 以及其他 webp-ffi 依赖项。我已确保已安装 xcode 和命令行工具并且是最新的。我已接受 xcode 的许可协议。我已经在我的系统上找到了头文件(jpeglib.h),如果需要,我可以给出路径。我相信这是 clang 在哪里寻找头文件的错误,但是我对 ~/.zshrc 文件中的环境变量所做的编辑似乎没有影响。
如果您需要任何其他信息来帮助解决该问题,请告诉我。
解决方案
我通过卸载所有东西(node.js、ruby、rbenv、homebrew 等)并使用 Rosetta 重做整个安装过程来解决这个问题。
要使用 Rosetta,请右键单击终端应用程序,转到“获取信息”,然后选中“使用 Rosetta 启动”复选框
推荐阅读
- typescript - 当严重性设置为“警告”时,为什么我的 TSLint 规则会导致错误?
- ajax - 在ajax中调用.py文件
- javascript - 如何计算以 N 为底的大整数的对数?
- java - 詹金斯:无法运行程序“docker”:错误=2,没有这样的文件或目录
- angular - 如何在 Visual Studio Code 中创建配置条目以启动服务器和调试量角器测试?
- django - Django REST Framework 只允许超级用户访问 api web 视图
- environment-variables - Travis CI 环境变量会告诉我当前构建是否可以访问秘密环境变量?
- html - Flexbox 断点对两列没有响应
- javascript - Karma 在 Selenium 3 集线器上进行远程测试
- ios - 将 AudioKit 从版本 2 迁移到版本 4