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

标签 r macos rcpp apple-m1 rcpparmadillo

我一直在尝试许多不同的方法来安装 RcppArmadillo,但我没有让它工作

install.packages(c('Rcpp'))
Sys.setenv("PKG_CXXFLAGS"="-std=c++11")
install.packages(c('RcppArmadillo'),type = "source")

它给我这个错误:

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’

很明显,我没有x86_64-apple-darwin18/8.2.0,因为我安装了gfortran for the apple silicon architecture .

苹果版:

macOS Big Sur 
11.2.3
Apple M1

R 版:

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           

最佳答案

我想我发现了一个问题。首先,我遵循本教程:R COMPILER TOOLS FOR RCPP ON MACOS
完成后,它给了我几乎与您在帖子中提到的相同的错误:

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 中创建了一个符号链接(symbolic link),它使用命令
引用/usr/local/gfortran ln -s/usr/local/gfortran/opt/R/arm64

关于r - 如何在 Apple Silicon (M1) Mac 上安装 RcppArmadillo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66817276/

相关文章:

r - 呼噜声;从具有概率列表的多列中抽样

java - 如何在 MacOS Sierra 上安装 JCE for JRE 8?

c++ - 在包 BAR 中使用 R 包 FOO 中的 C++ 代码的最佳方法

c++ - 如何计算 NumericVectors?

r - 由RcppArmadillo.package.skeleton创建的NAMESPACE选项导致错误

r - 使用 R 中的 apply 函数族进行向量化

r - 将 filter_all(any_vars()) 转换为 filter(across())

c - 如何修复 if 语句错误和 "Result of comparison against a string literal is unspecified"?

php - 当我在我的 Mac (OS X 10.6 Snow Leopard) 上使用本地服务器时,我在哪里保存我的 HTML 和 PHP 文件

r - 进行按行替换的“正确”方法