Сбой компиляции под Rcpp11, не может найти «будущее»

Я пытаюсь скомпилировать пакет R, используя привязки Rcpp11, чтобы использовать бинарный файл C ++ 11 под капотом. Я успешно скомпилировал и использовал этот пакет на моем Mac (OSX 10.9.5, компилятор clang ++):

Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix

Однако попытка скомпилировать под 64-битной Red Hat Linux с помощью компилятора g ++ версии 4.4.7-4 не удалась, поскольку заголовок, библиотека или пространство имен future не может быть найден:

In file included from RcppExports.cpp:4:
/path/to/R-libs/3.1/Rcpp11/include/Rcpp.h:50:18: error: future: No such file or directory

Насколько я знаю, future является частью спецификации C ++ 11. Я нахожу странным, что несколько других пространств имен были успешно загружены (мы успешно добрались до 50-й строки Rcpp.h), но future не делает. Это связано с использованием устаревшего компилятора? Для справки, я прикреплю фактический вызов к компилятору g ++, который завершится неудачно:

g++ -m64 -std=c++0x -I/usr/include/R -DNDEBUG -I/usr/local/include -I"/path/to/R-libs/3.1/Rcpp11/include" -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c RcppExports.cpp -o RcppExports.o

0

Решение

когда Rcpp11 не компилируется, это обычно означает, что компилятор не является компилятором C ++ 11. Предыдущие версии Rcpp11 использовал некоторый компромисс на том, что C++11 значит, но следующие версии не пойдут на компромисс. C++11 знак равно C++11, не незаконченный C++0x,

Что делает C++11 и вперед здорово, как все эти части сочетаются друг с другом.

Иметь C++11 компилятор — это цена, которую нужно заплатить за использование Rcpp11, Я вижу это как особенность.

1

Другие решения


По вопросам рекламы [email protected]