是否可以在不安装Rtools的情况下在R中使用Rcpp代码?

时间:2018-08-09 02:44:33

标签: r rcpp rtools

我的实验室中的Windows HPC服务器没有Rtools,因此在获取Rcpp代码时收到了此消息。

Warning message:
running command 'make -f "C:/PROGRA~1/R/R-32~1.2/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-32~1.2/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="sourceCpp_1.dll" WIN=64 TCLBIN=64 OBJECTS="MultiBayes.v1.o"' had status 127 
Error in sourceCpp("./rcode/MultiBayes.v1.cpp") : 
  Error 1 occurred building shared library.

WARNING: The tools required to build C++ code for R were not found.

Please download and install the appropriate version of Rtools:

http://cran.r-project.org/bin/windows/Rtools/

Execution halted

由于管理人员说在服务器上安装Rtools可能会花费很长时间,所以我想知道是否还有另一种方法可以解决此问题并在不安装Rtools的情况下运行Rcpp代码。

据我所知,构建软件包没有帮助,因为它在安装时也会使用Rtools。如果有错,请纠正我。

我可以绕行此代码以运行代码吗?

感谢任何评论和想法。

2 个答案:

答案 0 :(得分:3)

简而言之:

  1. 最窄的答案是:“是的,从理论上讲,您无需Rtools就可以安装”,如果您碰巧安装了gcc等人的二进制相同版本(包括补丁程序)。实际上,您不能(在Windows上)。

  2. 一种简单的方法是在HPC服务器外部编译代码的程序包,并在其上部署该程序包的二进制版本。简单。而且二进制文件不需要Rtools!

  3. 如果您执行HPC,则可能还需要研究Linux。

答案 1 :(得分:0)

感谢Dirk Eddelbuettel,我继续解决方案2来解决我的问题

这就是我所做的。

  1. 构建包括.cpp代码的R软件包,并创建软件包源(例如YourPkgName_1.0.tar.gz)

  2. 安装软件包以在桌面中创建库。例如,

    install.packages(pkgs =“ C:/Users/User/Desktop/YourPkgName_1.0.tar.gz”,                   repos = NULL,键入=“ source”)

  3. 将已安装的库从默认文件夹(您的桌面)移至服务器。我的本地网址是

    C:\ Program Files \ R \ R-3.5.1 \ library

  4. 您可以通过在R脚本中包含以下命令,在未安装Rtools的服务器下的R中加载cpp函数。

    library(“ YourPkgName”,lib.loc =“ YourPersonalLibraryDirectory”)