安装预测程序包时出现R gfortran /gcc相关/ segfault错误

zqry0prt  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(146)

我最近更新了我的MacOS到12.5版本,从那时起我就无法在R中安装某些软件包。
例如,我现在尝试在R中安装预测包。当我尝试安装该包时,我得到以下错误。

ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0'
ld: warning: dylib (/usr/local/gfortran/lib/libgfortran.dylib) was built for newer macOS version (12.3) than being linked (10.13)
ld: warning: dylib (/usr/local/gfortran/lib/libquadmath.dylib) was built for newer macOS version (12.3) than being linked (10.13)

这似乎是编译某些软件包时的一个常见问题,正如我在运行here所描述的“helloworld.cpp”测试时发现的。
根据我读过的帖子(特别是这个one和这个one),似乎其他人也遇到过类似的问题,一个解决方案是改变~/.R/Makevars中的编译状态。
我搜索了~/.R/Makevars,但找不到现有文件;所以我尝试在.r文件夹中创建一个名为“Makevars”的新文档文件,并将以下文本添加到该文档中:

VER=-11.3.0
CC=gcc$(VER)
CXX=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/11.3.0_2/lib/gcc/11

当我再次尝试安装预测软件包时,收到一个新的错误:

/bin/sh: gcc-11.3.0: command not found
make: *** [etscalc.o] Error 127
ERROR: compilation failed for package ‘forecast’

我怎样才能修复这个问题并重新安装软件包呢?我会很感激任何帮助,因为我真的一直在与此斗争。
作为后台,我安装了gcc(版本11.3.0)和Xcode命令行工具。

我尝试了建议的解决方案here,具体来说:
1.我在终端运行了ln -sf /usr/local/bin/gcc-11 /usr/local/bin/gcc
1.然后我将Makevars文件更改为

VER=-11
CC=gcc$(VER)
CXX=g++$(VER)
CXX11=g++$(VER)
CXX14=g++$(VER)
CXX17=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/11.3.0_2/lib/gcc/11

然而,我仍然遇到了一个新的错误(一个我甚至无法开始理解的错误),阻止了包的正确加载。

** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
sh: line 1: 16759 Segmentation fault: 11  R_TESTS= '/Library/Frameworks/R.framework/Resources/bin/R' --no-save --no-restore --no-echo 2>&1 < '/var/folders/vw/t_hc3fcn2y5d975y2c4pvc2w0000gn/T//RtmpbcA9DF/file412625285e87'

 *** caught segfault ***
address 0x18, cause 'memory not mapped'

这是会话信息

R version 4.2.1 (2022-06-23)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Monterey 12.5

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 
 
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.2.1           tools_4.2.1              RcppArmadillo_0.11.2.0.0 Rcpp_1.0.9
0s0u357o

0s0u357o1#

最后对我起作用的是删除所有的R包,然后安装预测包。
我用了答案here

相关问题