安装依赖gfortran的R包时提示找不到gfortran库求助
解决R包安装时gfortran库找不到的问题
问题
安装依赖gfortran的R包时触发链接错误:
ld: warning: search path '/opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0' not found ld: warning: search path '/opt/gfortran/lib' not found ld: library 'gfortran' not found clang: error: linker command failed with exit code 1 (use -v to see invocation)
已通过Homebrew安装gfortran(路径/opt/homebrew/bin/gfortran),且完成Xcode安装与xcode-select --install配置,系统gcc路径为/usr/bin/gcc。
解决方案
1. 定位gfortran库路径
执行命令获取gfortran的库文件目录:
gfortran -print-search-dirs
从输出的libraries:字段中找到类似/opt/homebrew/Cellar/gcc/[版本号]/lib/gcc/current的路径,记录该路径。
2. 配置R编译环境变量
临时生效(当前终端)
启动R前,在终端执行:
export LDFLAGS="-L[刚才记录的库路径]" export CPPFLAGS="-I[刚才记录的库路径]/include"
随后启动R尝试安装包。
永久生效(所有终端)
编辑shell配置文件(如~/.zshrc或~/.bashrc),添加:
export LDFLAGS="-L[刚才记录的库路径]" export CPPFLAGS="-I[刚才记录的库路径]/include"
保存后执行source ~/.zshrc(对应你的配置文件),再启动R安装包。
3. 符号链接替代方案
若不想配置环境变量,可给R期望的路径创建软链接:
sudo mkdir -p /opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0 sudo ln -s [刚才记录的库路径]/* /opt/gfortran/lib/ sudo ln -s [刚才记录的库路径] /opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0
替换[刚才记录的库路径]为实际路径,比如/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current。
验证
在R中执行以下命令确认环境变量配置正确:
Sys.getenv(c("LDFLAGS", "CPPFLAGS"))
确认路径无误后重新安装目标R包。
内容的提问来源于stack exchange,提问作者Juan Kim
相关产品推荐
相关产品推荐

