RVM install ruby 2.6.4 fails with makefile error: implicit declaration of function 'ffi_prep_closure' is invalid in C99
RVM install ruby 2.6.4 fails with makefile error: implicit declaration of function 'ffi_prep_closure' is invalid in C99
RVM rvm 1.29.12-next
Mac OS M1 芯片上的 Big Sur
rvm install 2.6.4
失败:
Error running '__rvm_make -j8',
please read /Users/jason/.rvm/log/1626110300_ruby-2.6.4/make.log
There has been an error while running make. Halting the installation.
makefile 错误是:
error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
result = ffi_prep_closure(pcl, cif, callback, (void *)self);
这是由于您的 shell 中未设置 RVM 的环境标志造成的。
brew info libffi
会告诉你需要的变量:
要让编译器找到 libffi,您可能需要设置:
导出 LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
导出 CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
要让 pkg-config 找到 libffi,您可能需要设置:
导出 PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"
对于 ZSH,编辑 ~/.zshenv
并添加:
export LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"
关闭并重新打开您的终端window或source ~/.zshrc
以加载您的更改
检查你的工作
% echo $LDFLAGS
-L/opt/homebrew/opt/libffi/lib
% echo $CPPFLAGS
-I/opt/homebrew/opt/libffi/include
% echo $PKG_CONFIG_PATH
/opt/homebrew/opt/libffi/lib/pkgconfig
(确认环境变量正确)
重新尝试安装您要安装的 rvm 版本。
RVM rvm 1.29.12-next
Mac OS M1 芯片上的 Big Sur
rvm install 2.6.4
失败:
Error running '__rvm_make -j8',
please read /Users/jason/.rvm/log/1626110300_ruby-2.6.4/make.log
There has been an error while running make. Halting the installation.
makefile 错误是:
error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
result = ffi_prep_closure(pcl, cif, callback, (void *)self);
这是由于您的 shell 中未设置 RVM 的环境标志造成的。
brew info libffi
会告诉你需要的变量:
要让编译器找到 libffi,您可能需要设置: 导出 LDFLAGS="-L/opt/homebrew/opt/libffi/lib" 导出 CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
要让 pkg-config 找到 libffi,您可能需要设置: 导出 PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"
对于 ZSH,编辑 ~/.zshenv
并添加:
export LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"
关闭并重新打开您的终端window或source ~/.zshrc
以加载您的更改
检查你的工作
% echo $LDFLAGS
-L/opt/homebrew/opt/libffi/lib
% echo $CPPFLAGS
-I/opt/homebrew/opt/libffi/include
% echo $PKG_CONFIG_PATH
/opt/homebrew/opt/libffi/lib/pkgconfig
(确认环境变量正确)
重新尝试安装您要安装的 rvm 版本。