编译RcppArmadillo报错:未找到gfortran库,寻求解决方案
解决Mac上RcppArmadillo安装失败的具体操作指南
你遇到的这个问题其实很典型——Mac系统默认没有预装适配R版本的gfortran编译环境,而RcppArmadillo依赖Fortran来编译底层的线性代数运算代码,所以才会抛出那些找不到-lgfortran库的错误。下面给你一步步的具体操作:
第一步:安装适配R 3.5的gfortran 4.8.3运行库
你的R版本是3.5,对应的需要安装gfortran 4.8.3的Mac版本(更高版本的gfortran可能和R 3.5不兼容)。你可以找到对应OS X系统的安装包(比如针对Mavericks及以上系统的gfortran-4.8.3-Mavericks.dmg),下载后打开镜像文件,双击里面的.pkg安装包,跟着向导完成安装就好,全程选默认选项就行。
第二步:配置终端环境变量(确保R能找到gfortran)
打开Mac的「终端」应用,根据你使用的shell类型执行对应命令,把gfortran的路径加入系统环境变量:
- 如果用的是bash shell:
echo 'export PATH="/usr/local/gfortran/bin:$PATH"' >> ~/.bash_profile echo 'export LDFLAGS="-L/usr/local/gfortran/lib"' >> ~/.bash_profile source ~/.bash_profile
- 如果用的是zsh shell(现在Mac默认是zsh):
echo 'export PATH="/usr/local/gfortran/bin:$PATH"' >> ~/.zshrc echo 'export LDFLAGS="-L/usr/local/gfortran/lib"' >> ~/.zshrc source ~/.zshrc
这一步是让系统和R能正确定位到gfortran的库文件,避免再次出现路径找不到的警告。
第三步:重新安装RcppArmadillo
打开R或者RStudio,执行以下命令重新安装:
install.packages("RcppArmadillo")
如果还是有编译问题,可以尝试手动指定编译依赖选项再安装:
Sys.setenv(PKG_LIBS = "-L/usr/local/gfortran/lib -lgfortran -lm") install.packages("RcppArmadillo", type = "source")
这里要提一句:你之前尝试安装旧版本源码包失败,本质原因还是缺少gfortran环境,和包版本无关,所以解决了编译环境问题后,不管新老版本都能正常安装。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

