Ruby on Rails webp-ffi gem 安装失败。找不到 C 头文件
Ruby on Rails webp-ffi gem installation fails. Can't find C header files
Mac OS 大苏尔
M1芯片
Ruby2.6.6
Rails6.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、自制软件等)并使用 Rosetta 重做整个安装过程解决了这个问题。
要使用 Rosetta,请右键单击您的终端应用程序,转到 'Get Info',然后选中 'Launch Using Rosetta' 复选框
Mac OS 大苏尔 M1芯片 Ruby2.6.6 Rails6.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、自制软件等)并使用 Rosetta 重做整个安装过程解决了这个问题。
要使用 Rosetta,请右键单击您的终端应用程序,转到 'Get Info',然后选中 'Launch Using Rosetta' 复选框