Ich versuche, Openmp in meinem Rcpp-Code zu verwenden und einige Probleme (Mac OS) zu begegnen. Habe versucht, viel zu googlen, aber nicht in der Lage, eine Lösung zu finden, die für mich funktioniert. Würde mich freuen, wenn Sie mir ein paar Gedanken machen können.math.h nicht gefunden bei der Verwendung von openmp (llvm) mit sourceCpp
Einige meiner Setups: 1) installiert llvm von zu Hause brauen 2) makevars in ~/.R
CXX =/usr/local/opt/llvm/bin/Klirren-CPP
CXXFLAGS = -I/usr/lokal/lib -I/usr/lokal/opt/llvm/include
LDFLAGS = "- L/usr/lokal/opt/llvm/lib -Wl, -rpath,/usr/local/opt/llvm/lib "
Es sieht so aus, als ob die in den Makevars angegebenen LDFLAGS ignoriert wurden. Auch wenn ich sourceCpp (temp.cpp) verwenden, bekomme ich diesen Fehler
usr/local/opt/llvm/bin/clang-cpp -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Users/myname/Library/R/3.2/library/Rcpp/include" -I"/Users/myname/Library/R/3.2/library/RcppArmadillo/include" -fopenmp -fPIC -I/usr/local/lib -I/usr/local/opt/llvm/include -c temp.cpp -o temp.o
In file included from temp.cpp:2: /usr/local/Cellar/llvm/4.0.0_1/bin/../include/c++/v1/math.h:301:15: fatal error: 'math.h' file not found
include_next
^~~~~~~~ 1 error generated. Error in sourceCpp(paste(path2, "temp.cpp", sep = ""), verbose = TRUE, :
Error 1 occurred building shared library. make: *** [temp.o] Error 1
Im temp.cpp habe ich
setzen#include <math.h>
#include <RcppArmadillo.h>
#include <omp.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::plugins(openmp)]]
using namespace Rcpp;
Stellen Sie sicher, dass Sie alle relevanten FAQ-Einträge für OS X/macOS gelesen haben. Nach Apples Wahl hat es noch keine OpenMP-Unterstützung, aber Sie können es auch für R bekommen, wenn Sie die richtigen Tools installieren. Dies ist alles an anderen Orten dokumentiert. –