Rcpp11 바인딩을 사용하여 R 패키지를 컴파일하여 C++ 11 바이너리를 사용하려고합니다.Rcpp11에서 컴파일이 실패하고 'future'를 찾을 수 없습니다.
Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posix
그러나 시도는 g ++ 컴파일러 버전과 64 비트 레드햇 리눅스에서 컴파일 : 나는 성공적으로 컴파일 내 Mac에서이 패키지를 사용했다 (OSX 10.9.5, 컴파일러는 그 소리 ++입니다) 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 사양의 일부입니다. 나는 몇몇 다른 네임 스페이스가 성공적으로로드되었다는 것을 이상하게 여긴다. (우리는 성공적으로 그것을 Rcpp.h의 50 번째 라인으로 만든다.) 그러나 future
은 그렇지 않다. 이것은 오래된 컴파일러를 사용하기 때문입니까? 참고로, 나는 실패 g ++ 컴파일러에 실제 전화를 연결할 수 있습니다 : Rcpp11
이 컴파일되지 않습니다
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
예, g ++ 4.4. *는 의미있는 C++ 11 작업에 비해 너무 길기 때문에 제약 조건으로 사용하는 Rcpp * 변형이 C++ 11 측에서 제공됩니다. 오래된 Rd Hat 상자를 사용하면 어떤 어려움을 겪게 될 것입니다. –
기술적으로 4.4.7은 그리 오래되지 않았지만 물론 4.4.0이 2009 년 4 월 19 일에 릴리스되었으므로 주 릴리스는 5 년이 조금 넘었습니다. 2012 년 3 월 13 일에 릴리스되었습니다. gcc 4.7.0은 2012 년 Marth 22에서 발표 된 C++ 11을 완전히 지원 한 최초의 개발자입니다. 그러나 RedHat은 새로운 버전에 대한 보수적 인 관계로 4.4 이상 릴리스 4.7.0을 선택했습니다 .7 일이 조금 위험 할 수 있습니다. 일이 4.4에서 4.5 사이에서 바뀔 가능성이 있으므로 4.4에서 4.7까지 신경 쓰지 마십시오. 나는 개인적으로 4.8.2 또는 4.9.1을 얻을 것이고, 그것을 로컬로 구축하고 그것을 위해 갈 것이다. –
고마워요. 안타깝게도이 Red Hat 상자는 저의 고성능 서버이며 새로운 컴파일러를 설치할 루트 액세스 권한이 없습니다. 한숨. – Wesley