2012-10-05 59 views
3

我需要爲數據分析類安裝Rstan。說明在這裏發佈http://code.google.com/p/stan/wiki/RStanGettingStarted。我正在運行Mac OS 10.5.8和R 2.15.1 GUI 1.52 Leopard build 32位(6188)。我剛剛安裝了Xcode版本3.1.4,與豹兼容的Xcode C++編譯器(我必須得到一個mac開發人員帳戶來執行此操作)。安裝Stan for R時和使用Rcpp時編譯時出錯

每斯坦安裝指導,我進入了下面的代碼,看看我的編譯器工作:

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') 

它返回以下錯誤:

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 

當我嘗試安裝斯坦:

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

我收到此警告: 警告消息: 在install.packages(「rstan」,type =「source」)中: 安裝包'rstan'具有非零退出狀態

我不知道C++如何工作。我所有的編碼經驗都在R中,並且以前沒有要求編譯成C++。過去4個小時左右,我一直在努力弄清楚什麼是錯誤的,一遍又一遍地搜索這些錯誤信息,沒有太多的運氣。任何幫助將不勝感激,並且還會幫助我班的另外10名有相同或類似問題的其他學生。非常非常感謝你。

+0

你不提你安裝的C++編譯器,RCPP的版本,和你不提安裝推薦的FORTRAN編譯器,無論是。我不再運行10.5.8並已升級到10.6.8的XCode包。在這個環境下,使用Rcpp版本:0.9.14,代碼無誤地運行。通常,這些問題最好提交給Mac-SIG郵件列表,儘管Simon Urbanel偶爾會在SO中看到。 –

+0

我提到我使用的C++編譯器是Xcode 3.1.4。 Rcpp版本是今天的最新版本。我對推薦的FORTRAN編譯器一無所知,所以想知道更多。 –

+1

OS X上的Rcpp用戶遇到了麻煩,因爲蘋果公司和FSF爭奪海灣合作委員會版權的混亂局面---但是Rcpp本身的工作原理與CRAN測試一樣。您可能「簡單地」需要通過他的站點安裝Simon爲OS X和R提供的編譯器。至於斯坦,開發者並沒有完全掌握詳細信息,所以我將不得不引導你到與斯坦有關的所有方面。 –

回答

5

這對我來說就像是安裝C++編譯器或安裝Rcpp軟件包的問題,​​而不是rstan軟件包的問題。但是,如果G ++是造成你一個棘手的問題,另一種是鐺編譯器,它應與RCPP和rstan如果你創建$ HOME/.R/Makevars與這兩條線

CC工作=鐺

CXX =鐺++

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都是在Xcode 3.14(不知道,因爲它並沒有說這是3.14)。因此,儘量確保R使用gcc 4.2.1是非常重要的。在終端中執行以下內容將顯示gcc的當前版本。

$ G ++ -v