Rcpp找不到Rtools:"构建共享库时出现错误1"

Tim*_*ole 13 r rcpp

我遇到了一个简单的Rcpp设置问题,我无法让它工作.我试着按照这个例子http://www.r-bloggers.com/user2013-the-rcpp-tutorial/ 但是在执行这段代码时:

library(Rcpp)
evalCpp("1 + 1", showOutput= TRUE)
Run Code Online (Sandbox Code Playgroud)

我得到了这个输出

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:
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我做了以下事情:

  • 用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.我在我的笔记本电脑和桌面上试了一下它们都没有用,所以可能有一些结构我做错了.

小智 6

看起来您的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 ...]
Run Code Online (Sandbox Code Playgroud)

如果未列出您的目录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.