Rcpp und Standard-C ++ - Compiler

Ich habe einige seltsame Probleme mit Rcpp - es wird ein unvorhersehbarer C ++ - Compiler verwendet. Diese Frage ähnelt in etwadiese Frag.
Ich bin auf OSX, ich habe 2 Compliler - Standardclang undclang-omp mit OpenMP-Unterstützung. Auch ich habe folgende~/.R/Makevars file (wo ich @ eingerichtet haclang-omp als Standard-Compiler):

CC = clang-omp
CXX = clang-omp ++
CFLAGS + = -O3 -Wand -pipe -pedantic -std = gnu99
CXXFLAGS + = -O3 -Wand -pipe -Wno-unbenutzt -pedantic -fopenmp

Das Problem ist, dass das Paket, das ich entwickle, mit @ kompiliert wirclang++, nichtclang-omp++. Ich habe auch versucht (als Experiment, um das Problem zu lösen), das Paket zu ändernsrc/Makevars und setCXX=clang-omp++ und darüber hinaus geändert$R_HOME/etc/Makeconf CXX eintrag zuCXX = clang-omp++. Kein Glück - es kompiliert immer noch mitclang++. Habe keine Ahnung warum es passiert.

Auch hier ist ein kleines reproduzierbares Beispiel (sowohl von Konsole R als auch von Rstudio) (weiß nicht, ob es mit dem obigen Problem zu tun hat). Angenommen, 2 sehr ähnliche cpp-Funktionen:
1.

#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
}  

AnrufsourceCpp von R:

library(Rcpp)  
sourceCpp("src/Rcpp_compiler.cpp", verbose = T)

/ Bibliothek / Frameworks / R.framework / Resources / bin / R CMD SHLIB -o 'sourceCpp_1.so' 'Rcpp_compiler.cpp'
clang-omp ++ -I / Library / Frameworks / R.framework / Resources / include -DNDEBUG -I / usr / local / include -I / usr / local / include / freetype2 -I / opt / X11 / include -I "/ Users / dmitryselivanov /Library/R/3.2/library/Rcpp/include "-I" / Users / dmitryselivanov / projects / experimental / src "-fPIC -Wall -mtune = core2 -g -O2 -O3 -Wall -pipe -Wno-unused - pedantic -fopenmp -c Rcpp_compiler.cpp -o Rcpp_compiler.o
clang-omp ++ -dynamiclib -Wl, -headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L / Bibliothek / Frameworks / R.framework / Resources / lib -L / usr / local / lib -o sourceCpp_1.so Rcpp_compiler.o -F / Bibliothek /Frameworks/R.framework/ .. -framework R -Wl, -framework -Wl, CoreFoundation

Work wie erwartet - verwendet clang-omp ++ und alle meine Flags von~/.R/Makevars

2.

#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::plugins(cpp11)]]
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
}  

Bibliothek / Frameworks / R.framework / Resources / bin / R CMD SHLIB -o 'sourceCpp_2.so' 'Rcpp_compiler.cpp'
clang ++ -std = c ++ 11 -I / Library / Frameworks / R.framework / Resources / include -DNDEBUG -I / usr / local / include -I / usr / local / include / freetype2 -I / opt / X11 / include -I "/Users/dmitryselivanov/Library/R/3.2/library/Rcpp/include" -I "/ Users / dmitryselivanov / projects / experimental / src" -fPIC -Wall -mtune = core2 -g -O2 -c Rcpp_compiler. cpp -o Rcpp_compiler.o
clang ++ -std = c ++ 11 -dynamiclib -Wl, -headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L / Bibliothek / Frameworks / R.framework / Resources / lib -L / usr / local / lib -o sourceCpp_2.so Rcpp_compiler.o -F / Bibliothek / Frameworks / R.framework / .. -framework R -Wl, -framework -Wl, CoreFoundation

Ich habe nur @ hinzugefü// [[Rcpp::plugins(cpp11)]] und es kompiliert mitclang++ Anstatt vonclang-omp++

Hier ist meinsessionInfo():

R Version 3.2.1 (18.06.2015) Plattform: x86_64-apple-darwin13.4.0 (64-Bit)
Ausgeführt unter: OS X 10.10.5 (Yosemite)
locale:1 de_DE.UTF-8 / de_DE.UTF-8 / de_DE.UTF-8 / C / de_DE.UTF-8 / de_DE.UTF-8 angehängte Basispakete:
1 stats graphics grDevices utils Datasets Methoden base
weitere angehängte Pakete:1 Rcpp_0.12.1
über einen Namespace geladen (und nicht angehängt):1 tools_3.2.1

Antworten auf die Frage(4)

Ihre Antwort auf die Frage