我遇到了Rcpp的一个简单设置问题,无法正常工作。我尝试遵循此示例http://www.r-bloggers.com/user2013-the-rcpp-tutorial/
但是在执行此代码时:

library(Rcpp)
evalCpp("1 + 1", showOutput= TRUE)


我得到这个输出

C:/R/R-30~1.1/bin/x64/R CMD SHLIB -o "sourceCpp_33280.dll" "file8d01b0a675b.cpp"
Error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput,  :
  Error 1 occurred building shared library.
WARNING: Rtools is required to build R packages but is not currently installed.
Please download and install the appropriate version of Rtools before proceeding:


为了达到目的,我做了以下事情:


通过install.Rtools()安装了Rtools 31
在C:\ R \ R-3.0.1中安装了R
库文件存储在C:\ R \ R-3.0.1 \ library中
在C:\ R \ RStudio中安装了Rstudio
将我的脚本放在C:\ R


大多数类似的问题似乎表明文件路径中有一个空格,因此我几乎可以移动所有东西。但是仍然无法找到Rtools。我在笔记本电脑和台式机上都尝试过,但都无法正常工作,所以可能是结构上的错误。

最佳答案

看起来您的R二进制文件和Rtools目录都不在系统的PATH环境变量中。试试这个:

> writeLines(strsplit(Sys.getenv("PATH"), ";")[[1L]])
C:\R\Rtools\bin
C:\R\Rtools\gcc-4.6.3\bin
C:\R\R-devel\bin\x64
[... and so on ...]


如果未列出目录C:\R\R-3.0.1\bin\x64\C:\R\Rtools\bin\C:\R\Rtools\gcc-*.*.*\bin\(将\ gcc-*-*-* \替换为您的gcc-binaries版本),则找不到所需的组件。
为了安全起见,还请创建一个值为CYGWIN的名为nodosfilewarning的系统变量。

更改/创建PATHCYGWIN变量后,重新启动。然后它应该工作了,您可以将源放置在计算机上的任何位置,也可以使用R CMD SHLIB手动进行编译。

关于r - Rcpp找不到Rtools:“错误1在构建共享库时发生”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17619185/

10-12 21:58