1

我试图构建一个包含 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
  1. 我创建了 test1 包(同样没有添加我的 R 代码或 RcppArmadillo 代码)。运行 R CMD 检查 test1。Clang 错误消失了,但我得到了新的错误:
/bin/sh: XX: command not found
make: *** [RcppExports.o] Error 127

对新错误有任何帮助吗?它是什么?谢谢!

4

0 回答 0