在R中更换默认Fortran编译器解决statmod包编译失败问题
解决Ubuntu 18.04.6下R 4.3.0安装statmod包的Fortran编译器问题
问题原因
报错as: unrecognized option '--gdwarf-5'是因为当前使用的Homebrew GCC 13.1.0的Fortran编译器,与Ubuntu 18.04.6自带的老旧汇编器不兼容,需要更换为系统兼容的Fortran版本。
解决步骤
1. 安装系统兼容的Fortran编译器
Ubuntu 18.04默认的gcc/gfortran 7.x版本与系统环境兼容,执行以下命令安装:
sudo apt update sudo apt install gfortran-7
2. 临时切换R的Fortran编译器(单次生效)
在R会话中先设置环境变量,再安装statmod:
Sys.setenv(F77 = "/usr/bin/gfortran-7", FC = "/usr/bin/gfortran-7") install.packages("statmod")
3. 永久设置默认Fortran编译器(可选)
修改R的配置文件,让每次启动R都自动使用指定编译器:
- 打开或创建用户级配置文件:
nano ~/.R/Makevars
- 添加以下内容:
F77 = /usr/bin/gfortran-7 FC = /usr/bin/gfortran-7
- 保存退出(按
Ctrl+O回车确认,Ctrl+X退出),重启R后生效。
4. 验证切换结果
在R中执行以下命令,确认编译器已切换:
system("which gfortran") system("gfortran --version")
输出显示/usr/bin/gfortran-7及对应的7.x版本,即说明切换成功。
内容的提问来源于stack exchange,提问作者jonny jeep
相关产品推荐
相关产品推荐

