17

我在使用 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
  • 将 R 安装在 C:\R\R-3.0.1
  • 库文件存储在 C:\R\R-3.0.1\library
  • 在 C:\R\RStudio 中安装 Rstudio
  • 将我的脚本放在 C:\R

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

4

1 回答 1

7

看起来您的 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 二进制文件版本),则无法找到所需的组件。为了安全起见,还要创建一个名为CYGWINvalue的系统变量nodosfilewarning

更改/创建PATHCYGWIN变量后,重新启动。然后它应该可以工作,您可以将源代码放在机器上的任何位置,也可以使用R CMD SHLIB.

于 2015-01-10T01:19:03.163 回答