Apple M1芯片MacBook安装gfortran适配R编译源码包问题求助
解决方案
你的问题核心是仅移动gfortran可执行文件无法满足编译要求,gfortran运行还需要配套的运行时库、头文件等依赖,两种方法可以解决:
方法1:安装完整gfortran到R默认查找路径(推荐)
该方案无需修改R配置,后续安装其他需要编译的包也不会出现路径问题,操作步骤如下:
- 先将之前移动的gfortran可执行文件恢复到原路径,避免冲突:
sudo mv /opt/R/arm64/bin/gfortran /usr/local/bin/ - 下载适用于Apple M1的完整gfortran安装包(选择dmg格式,不要单独下载二进制文件)
- 运行安装包,将安装目标路径设置为
/opt/R/arm64,安装完成后整套gfortran的二进制、依赖库、头文件都会自动放到R默认查找的对应目录下 - 终端执行以下命令验证安装是否正确,两个命令都能正常输出文件路径则配置完成:
ls /opt/R/arm64/bin/gfortran ls /opt/R/arm64/gfortran/lib/libgfortran.dylib - 重启R后重新安装目标包即可,编译过程中的类型转换、未使用变量等警告属于包本身的代码规范提示,不影响安装和使用。
方法2:修改R编译配置指向现有gfortran路径
如果不想重新安装gfortran,可以修改R的全局编译配置,手动指定gfortran的路径和依赖库路径:
- 终端执行以下命令创建R编译配置文件(如果文件已存在则直接编辑):
mkdir -p ~/.R && touch ~/.R/Makevars - 打开
~/.R/Makevars文件,添加以下配置(如果你的gfortran依赖库不在/usr/local/gfortran/lib下,替换为实际路径即可):# 指定Fortran编译器路径 FC = /usr/local/bin/gfortran F77 = /usr/local/bin/gfortran # 指定gfortran依赖库查找路径 FLIBS = -L/usr/local/gfortran/lib -lgfortran -lemutls_w -lm LDFLAGS += -L/usr/local/gfortran/lib - 保存文件后重启R,重新安装目标包即可。
内容的提问来源于stack exchange,提问作者Mark White
相关产品推荐
相关产品推荐

