Использование RcppArmadillo с openmp на MacOS - PullRequest
0 голосов
/ 06 мая 2019

Я написал небольшой пакет, который использует RcppArmadillo.Он прекрасно компилируется в Linux и в Windows, но не работает на MacOS.Ошибка:

clang++ -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/RcppArmadillo/include" -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 ‘ed0’
* removing ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/ed0’
Error in i.p(...) : 
  (converted from warning) installation of package ‘/var/folders/ql/j3z8hyt927jfqhs4v836c6580000gn/T//RtmpOmkBP8/file4403a3bb5ec/ed0_0.1.0.tar.gz’ had non-zero exit status

Мой Makevars выглядит следующим образом (то есть автоматически генерируется RcppArmadillo)


## With R 3.1.0 or later, you can uncomment the following line to tell R to
## enable compilation with C++11 (where available)
##
## Also, OpenMP support in Armadillo prefers C++11 support. However, for wider
## availability of the package we do not yet enforce this here.  It is however
## recommended for client packages to set it.
##
## And with R 3.4.0, and RcppArmadillo 0.7.960.*, we turn C++11 on as OpenMP
## support within Armadillo prefers / requires it
CXX_STD = CXX11

PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)

Я нашел в Google, но не смог найти решение.

...