我试图构建一个包含 RcppArmadillo 代码的包,但总是遇到编译错误。为了简单起见,我开始时没有添加自己的代码。我第一次尝试
library(Rcpp)
Rcpp.package.skeleton("test")
我运行“R CMD 检查测试”,没有返回错误。然后我对 RcppArmadillo 命令做了同样的事情,如下所示:
library(Rcpp)
Rcpp.package.skeleton("test1")
当我从命令行运行“R CMD check test1”时,我收到如下错误消息:
...
* checking whether package ‘test1’ can be installed ... ERROR
Installation failed.
...
我进一步检查了 00install.out 文件,它说
clang++ -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/RcppArmadillo/include" -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include -fopenmp -fPIC -Wall -g -O2 -c RcppExports.cpp -o RcppExports.o
clang: error: unsupported option '-fopenmp'
make: *** [RcppExports.o] Error 1
ERROR: compilation failed for package ‘test1’
有人对“错误:不支持的选项'-fopenmp'make”有任何想法吗?如何解决?
提前致谢!
更新:我按照网站上的说明进行了以下操作: 1. 更新 xcode 2. brew install llvm 3. 从 cran 下载 gcc 和 clang 8 并安装 4. 创建 ~/R 目录并创建文件 Makevars,如下所示:
# The following statements are required to use the clang8 binary
CC=/usr/local/clang8/bin/clang
CXX=/usr/local/clang8/bin/clang++
CXX11=$CXX
CXX14=$CXX
CXX17=$CXX
CXX1X=$CXX
LDFLAGS=-L/usr/local/clang8/lib
# End clang8 inclusion statements
- 我创建了 test1 包(同样没有添加我的 R 代码或 RcppArmadillo 代码)。运行 R CMD 检查 test1。Clang 错误消失了,但我得到了新的错误:
/bin/sh: XX: command not found
make: *** [RcppExports.o] Error 127
对新错误有任何帮助吗?它是什么?谢谢!