2012-10-05 7 views
3

데이터 분석 클래스로 Rstan을 설치해야합니다. 지시 사항은 여기 http://code.google.com/p/stan/wiki/RStanGettingStarted에 게시됩니다. Mac OS 10.5.8 및 R 2.15.1 GUI 1.52 Leopard는 32 비트 (6188)를 실행합니다. 방금 Xcode 버전 3.1.4를 설치했습니다. Xcode C++ 컴파일러는 표범과 호환됩니다 (이 작업을 수행하려면 Mac 개발자 계정을 가져야했습니다).Stan for R을 설치할 때와 Rcpp를 사용할 때 컴파일 할 때 오류가 발생했습니다.

Error in compileCode(f, code, language = language, verbose = verbose) : 
Compilation ERROR, function(s)/method(s) not created! 
Library/Frameworks/R.framework/Versions/2.15/Resources/library/ 
Rcpp/include/Rcpp/internal/export.h: In function ‘void 
Rcpp::internal::export_range__dispatch(SEXPREC*, InputIterator, 
Rcpp::traits::r_type_primitive_tag)’: 
/Library/Frameworks/R.framework/Versions/2.15/Resources/ 
library/Rcpp/include/Rcpp/internal/export.h:56: internal 
compiler error: Bus error 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:http://developer.apple.com/bugreporter> for 
instructions. 
make: *** [file795214e66510.o] Error 1 
In addition: Warning message: 
running command '/Library/Frameworks/R.framework/Resources/bin/ 
R CMD SHLIB file795214e66510.cpp 2> 
file795214e66510.cpp.err.txt' had status 1 

내가 스탠를 설치하려고 :

library(inline) 
library(Rcpp) 
src <- ' 
    std::vector<std::string> s; 
    s.push_back("hello"); 
    s.push_back("world"); 
    return Rcpp::wrap(s); 
' 
hellofun <- cxxfunction(body = src, includes = '', plugin = 'Rcpp', verbose = FALSE) 
cat(hellofun(), '\n') 

그것은 다음과 같은 오류를 반환 스탠 설치 명령 당

, 내 컴파일러가 일하고 있는지 확인하기 위해 다음 코드를 입력 :

install.packages('rstan', type = 'source') ] 

경고 : 경고 메시지 : install.packages ("rstan", type = "source") : 'rstan'패키지의 설치가 0이 아닌 종료 상태입니다.

어떻게 C++가 작동하는지 잘 모릅니다. 모든 코딩 경험은 R이며 C++ 로의 컴파일이 필요하지 않습니다. 나는 지난 4 시간 동안 무엇이 잘못되었는지 알아 내기 위해 열심히 노력해 왔으며, 많은 실수없이 이러한 오류 메시지를 반복적으로 검색합니다. 어떤 도움을 주셔서 감사 드리며 동일하거나 유사한 문제가있는 수업 시간에 다른 10 명의 학생들에게 도움이 될 것입니다. 매우 고맙습니다.

+0

당신은 Rcpp의 버전, 설치된 C++ 컴파일러를 언급하지 않고, 당신도, 권장 FORTRAN 컴파일러를 설치하는 언급하지 않습니다. 더 이상 10.5.8을 사용하지 않고 10.6.8의 XCode 패키지로 업그레이드했습니다. 이 환경에서는 코드가 Rcpp 버전 0.9.14를 사용하여 오류없이 실행됩니다. 일반적으로 그러한 질문은 Mac-SIG 메일 링리스트에 제출하는 것이 가장 좋지만, Simon Urbanel은 때때로 그렇게 보입니다. –

+0

제가 사용하고있는 C++ 컴파일러는 Xcode 3.1.4입니다. Rcpp 버전은 현재의 현재 버전입니다. FORTRAN 권장 컴파일러에 대해서는 아무 것도 모르므로 자세한 내용을 알고 싶습니다. –

+1

OS X의 Rcpp 사용자는 애플과 FSF가 gcc 저작권으로 싸우는 지저분한 상황 때문에 문제를 겪었습니다. 그러나 Rcpp 자체는 CRAN 테스트 등으로 볼 때 작동합니다.Simon이 OS X 및 R 용으로 제공 한 컴파일러를 사이트를 통해 "간단하게"설치해야 할 수도 있습니다. Stan에 관해서는 개발자들이 세부 사항이 다가오는 것은 아니므로 (R) Stan과 관련된 모든 측면을 사용자에게 안내해야합니다. –

답변

5

이것은 rstan 패키지의 문제가 아니라 C++ 컴파일러 설치 또는 Rcpp 패키지 설치 문제와 같습니다. g ++에서 당신을 위해 어려운 문제를 일으키는 경우, 대안이 두 라인

CC와 $ HOME/.R/Makevars을 만들 경우 Rcpp 및 rstan와 함께 작동해야 그 소리 컴파일러, = 그 소리

입니다

CXX = clang ++

2

다른 답변에서 언급했듯이 첫 번째 단계는 Rcpp가 Mac에서 작동하도록하는 것입니다 (예 : 적어도 hello world 예제 전달).

이전에 Rcpp에 대한 유사한 문제가 : https://stat.ethz.ch/pipermail/r-sig-mac/2010-July/007574.html

또한,이 웹 페이지 http://useyourloaf.com/blog/2011/03/21/compiler-options-in-xcode-gcc-or-llvm.html에서, 그것은 GCC 4.2와 4.0 엑스 코드 3.14 둘 것 같다 (그것은 3.14의 말을하지 않는 한 확인되지 않음). 그래서 gcc 4.2.1이 R에 의해 사용되는지 확인하는 것이 중요합니다. 터미널에서 다음을 실행하면 gcc의 현재 버전이 표시됩니다.

$ g ++ -v