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,这是与 leopard 兼容的 Xcode c++ 编译器(我必须获得一个 mac 开发人员帐户才能执行此操作)。

根据 Stan 安装说明,我输入了以下代码以查看我的编译器是否正常工作:

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

当我尝试安装 stan 时:

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

我收到此警告:警告消息:在 install.packages("rstan", type = "source") 中:安装包 'rstan' 的退出状态非零

我不知道 C++ 是如何工作的。我所有的编码经验都在 R 中,之前不需要编译成 C++。在过去 4 小时左右的时间里,我一直在努力找出问题所在,一遍又一遍地在谷歌上搜索这些错误消息,但运气不佳。任何帮助将不胜感激,也将帮助我班上其他大约 10 名遇到相同或类似问题的学生。非常非常感谢你。

4

2 回答 2

5

这在我看来像是安装 C++ 编译器或安装 Rcpp 包的问题,​​而不是 rstan 包的问题。但是,如果 g++ 对您造成了棘手的问题,则可以使用 clang 编译器,如果您使用这两行创建 $HOME/.R/Makevars,它应该可以与 Rcpp 和 rstan 一起使用

抄送=叮当

CXX=叮当++

于 2012-10-21T10:43:32.060 回答
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

于 2012-10-22T21:05:25.137 回答