M1芯片MacBook Pro安装R包scater时依赖densvis编译失败求助
解决M1 Mac安装densvis包的编译错误
错误原因
你的M1芯片Mac上,R编译densvis时找不到适配arm64架构的gfortran库,报错里的/opt/gfortran路径是Intel架构的默认路径,和M1的arm64环境不匹配。
解决步骤
安装适配arm64的gfortran
在终端执行以下命令,通过Homebrew安装适配M1的gcc套件(包含gfortran):brew install gcc安装完成后,用
which gfortran确认路径,一般会输出/opt/homebrew/bin/gfortran,对应的库路径为/opt/homebrew/lib/gcc/[你的gcc版本号]/(比如/opt/homebrew/lib/gcc/13/)。给R指定正确的库路径
打开R,运行以下代码设置临时环境变量(替换成你实际的gcc库路径):Sys.setenv(LD_LIBRARY_PATH="/opt/homebrew/lib/gcc/13/") Sys.setenv(CFLAGS="-I/opt/homebrew/include") Sys.setenv(LDFLAGS="-L/opt/homebrew/lib")之后重新安装
densvis:install.packages("densvis")源码安装兜底方案
如果上述方法无效,下载CRAN上的densvis源码包(如densvis_0.1.17.tar.gz),在终端执行以下命令手动指定gfortran路径安装:R CMD INSTALL densvis_0.1.17.tar.gz --configure-args="--with-gfortran=/opt/homebrew/bin/gfortran"注意替换命令中的源码包版本号为你下载的实际版本。
额外检查
- 确认你的R是arm64原生版本:在R中运行
sessionInfo(),输出里的架构显示aarch64-apple-darwin20即为正确版本,若为x86_64则是Rosetta转译的Intel版本,建议重新安装arm64版R。 - 若之前装过Intel版gfortran,先执行
brew uninstall gcc卸载,再重新安装arm64版本。
内容的提问来源于stack exchange,提问作者studentYYY
相关产品推荐
相关产品推荐

