首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Apple Silicon (M1) Mac上安装RcppArmadillo

如何在Apple Silicon (M1) Mac上安装RcppArmadillo
EN

Stack Overflow用户
提问于 2021-03-26 20:49:14
回答 2查看 870关注 0票数 0

我尝试了许多不同的方法来安装RcppArmadillo,但是我不能让它工作

代码语言:javascript
复制
install.packages(c('Rcpp'))
Sys.setenv("PKG_CXXFLAGS"="-std=c++11")
install.packages(c('RcppArmadillo'),type = "source")

它给出了这个错误:

代码语言:javascript
复制
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0'
ld: library not found for -lquadmath
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [RcppArmadillo.so] Error 1
ERROR: compilation failed for package ‘RcppArmadillo’
* removing ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppArmadillo’

显然,自从我安装了gfortran for the apple silicon architecture之后,我就没有x86_64-apple-darwin18/8.2.0了。

Mac版本:

代码语言:javascript
复制
macOS Big Sur 
11.2.3
Apple M1

R版本:

代码语言:javascript
复制
version
               _                           
platform       x86_64-apple-darwin17.0     
arch           x86_64                      
os             darwin17.0                  
system         x86_64, darwin17.0          
status                                     
major          4                           
minor          0.4                         
year           2021                        
month          02                          
day            15                          
svn rev        80002                       
language       R                           
version.string R version 4.0.4 (2021-02-15)
nickname       Lost Library Book           
EN

回答 2

Stack Overflow用户

发布于 2021-07-21 04:36:32

我想我发现了一个问题。首先,我遵循以下教程:R COMPILER TOOLS FOR RCPP ON MACOS

一旦完成,它给我带来的错误几乎和你在帖子中提到的一样:

代码语言:javascript
复制
ld: warning: directory not found for option '-L/opt/R/arm64/gfortran/.....'
ld: library not found for -lgfortran clang: error: linker command failed
with exit code 1 (use -v to see invocation)

看起来,R正在/opt/R/arm64文件夹中查找gfortran。

在图章中,它指示gfortran安装在/usr/local/gfortran文件夹中。

我使用以下命令在/opt/R/arm64中创建了一个指向/usr/local/gfortran的符号链接

ln -s /usr/local/gfortran /opt/R/arm64

票数 2
EN

Stack Overflow用户

发布于 2021-11-08 13:02:33

可以将~/.R/Makevars中的FLIBS设置为以下选项之一

代码语言:javascript
复制
# homebrew gfortran
FLIBS=-L/opt/homebrew/opt/gfortran/lib

# gfortran included in R
FLIBS=-L/opt/R/arm64/gfortran/lib

此外,您可能还希望将F77FC定义为

代码语言:javascript
复制
F77     = /opt/R/arm64/gfortran/bin/gfortran
FC      = /opt/R/arm64/gfortran/bin/gfortran

要进行验证,请尝试安装glmnet包,现在应该会成功。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66817276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档