R 4.0.5环境安装CCA包时deSolve编译失败引发安装报错
问题诱因
该报错本质是macOS环境下编译含Fortran源码的R包时,系统链接器找不到gfortran动态库导致的编译失败,和R 4.0.5版本本身无直接关联:
- 报错日志中
ld: library not found for -lgfortran是核心错误标识,同时提示的两个gfortran库路径/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0、/usr/local/gfortran/lib不存在,说明本地要么未安装对应版本的gfortran编译器,要么编译器安装路径没有被R的编译配置正确识别。 - deSolve、fda均包含Fortran编写的底层性能代码,安装时需要本地调用gfortran完成编译链接,编译环境缺失会直接导致这两个包安装失败,依赖这两个包的上层包CCA自然会触发连锁安装报错。
解决方法
按以下顺序操作即可修复:
- 安装适配R 4.0.x版本的gfortran编译器
R 4.0.5官方编译工具链匹配gfortran 8.2版本,不要安装过高版本避免兼容性问题。安装完成后确认/usr/local/gfortran/lib路径存在,且路径下包含libgfortran开头的库文件。 - 校验R的编译配置路径
打开R安装目录下的配置文件,路径为/Library/Frameworks/R.framework/Versions/4.0/Resources/etc/Makeconf,找到FLIBS配置项,确认其中标注的gfortran库路径和本地实际安装路径完全一致,若存在偏差直接修改为实际路径后保存。 - (可选)跳过源码编译直接安装二进制包
如果不想手动配置编译环境,安装时指定优先使用预编译二进制包即可,不需要本地编译:install.packages("CCA", type = "binary") - 验证修复效果
先单独执行install.packages("deSolve")确认无编译报错,再安装CCA包就不会出现依赖缺失的连锁错误。
内容的提问来源于stack exchange,提问作者glouis
相关产品推荐
相关产品推荐

