如何在TDM-gcc 4.8.1中使用Rcpp?

时间:2014-01-25 19:13:06

标签: r rcpp

我在Windows 7(32位)下使用R 3.0.2,路径中有TDM-GCC-32(gcc(tdm-2)4.8.1)。

当我尝试使用cppFunction时,我收到一些错误:

library(inline)
library(Rcpp)
src <- '
SEXP hellofun(){
 std::vector<std::string> s;
  s.push_back("hello");
s.push_back("world");
return Rcpp::wrap(s);
}'
hello_fun <- cppFunction(src)

错误讯息:

Error in inDL(x, as.logical(local), as.logical(now), ...) (from file1c8c8c929f5.cpp.R#1) : 
  unable to load shared object 'C:/Users/ssss11/AppData/Local/Temp/RtmpeywSmo/sourcecpp_1c8c47543253/sourceCpp_60750.dll':
  LoadLibrary failure:  Invalid access to memory location

但是,当我运行示例(cfuntion)时,它会成功。

library(inline)
example(cfunction)

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我不知道TDM-GCC-32 (gcc (tdm-2) 4.8.1)可能是什么 - 但我们的文档反复强调Windows上只支持一个编译器:与您的R对应的Rtools版本附带的编译器版本

现在,'TDM-gcc-32'可能与功能兼容,但如果您想使用它,您可能需要重建整个 R堆栈(即R本身,所有包,。 ..) 用它。

最好等待R Core / CRAN将Rtools更新为比gcc-4.6更新的版本。*