2016款MacBook Air中R语言安装CARD包(依赖devtools)失败求助
解决Mac下安装R包CARD时gfortran链接失败的问题
核心问题是R编译时默认查找的gfortran路径/opt/gfortran/lib不存在,而Homebrew安装的gcc(包含gfortran)路径不在该位置,导致链接失败。以下是具体解决步骤:
步骤1:确认Homebrew安装的gfortran路径
打开终端,执行命令定位gfortran位置:
which gfortran
- Intel芯片:输出通常为
/usr/local/bin/gfortran - Apple Silicon(M1/M2)芯片:输出通常为
/opt/homebrew/bin/gfortran
再执行命令查看gfortran版本:
gfortran --version
记下版本号(比如13.2.0),后续步骤会用到。
步骤2:创建软链接匹配R的默认查找路径
首先创建R默认查找的目录(如果不存在):
sudo mkdir -p /opt/gfortran/lib/gcc/x86_64-apple-darwin20.0/
针对Intel芯片
将Homebrew安装的gfortran库链接到R的默认路径:
# 链接核心库文件 sudo ln -s /usr/local/lib/gcc/[你的版本号]/libgfortran.* /opt/gfortran/lib/ sudo ln -s /usr/local/lib/gcc/[你的版本号]/libquadmath.* /opt/gfortran/lib/ # 链接gcc版本目录 sudo ln -s /usr/local/lib/gcc/[你的版本号]/ /opt/gfortran/lib/gcc/x86_64-apple-darwin20.0/[你的版本号]
把[你的版本号]替换为步骤1中获取的实际版本号(比如13)。
针对Apple Silicon芯片
执行以下命令创建软链接:
# 链接核心库文件 sudo ln -s /opt/homebrew/lib/gcc/[你的版本号]/libgfortran.* /opt/gfortran/lib/ sudo ln -s /opt/homebrew/lib/gcc/[你的版本号]/libquadmath.* /opt/gfortran/lib/ # 链接gcc版本目录 sudo ln -s /opt/homebrew/lib/gcc/[你的版本号]/ /opt/gfortran/lib/gcc/x86_64-apple-darwin20.0/[你的版本号]
同样替换[你的版本号]为实际版本号。
步骤3:重新安装CARD包
回到R/RStudio,重新执行安装命令:
install.packages('devtools') library(devtools) devtools::install_github('YingMa0107/CARD', dependencies = TRUE)
备选方案:修改R编译配置文件
如果软链接方法无效,可以直接修改R的编译配置:
- 在终端创建R配置目录(如果不存在):
mkdir -p ~/.R
- 创建并编辑
Makevars文件:
touch ~/.R/Makevars open ~/.R/Makevars
- 根据芯片类型添加以下内容,替换
[你的版本号]:- Intel芯片:
FLIBS=-L/usr/local/lib/gcc/[你的版本号] -lgfortran -lquadmath - Apple Silicon芯片:
FLIBS=-L/opt/homebrew/lib/gcc/[你的版本号] -lgfortran -lquadmath
- Intel芯片:
- 保存文件后重启R/RStudio,再重新安装CARD包。
内容的提问来源于stack exchange,提问作者Iwan R
相关产品推荐
相关产品推荐

