首页 > 解决方案 > 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 文件中的环境变量所做的编辑似乎没有影响。

如果您需要任何其他信息来帮助解决该问题,请告诉我。

标签: ruby-on-railsmacosrubygemsclangzsh

解决方案


我通过卸载所有东西(node.js、ruby、rbenv、homebrew 等)并使用 Rosetta 重做整个安装过程来解决这个问题。

要使用 Rosetta,请右键单击终端应用程序,转到“获取信息”,然后选中“使用 Rosetta 启动”复选框


推荐阅读