【问题标题】:Can I use the Rcpp code in R without installing Rtools?我可以在不安装 Rtools 的情况下在 R 中使用 Rcpp 代码吗?
【发布时间】:2018-08-09 02:44:33
【问题描述】:

我实验室的 Window 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。如有错误请指正。

我可以绕道运行代码吗?

感谢任何 cmets 和想法。

【问题讨论】:

    标签: r rcpp rtools


    【解决方案1】:

    简单地说:

    1. 如果您碰巧安装了 gcc 等的二进制相同版本(包括补丁),那么狭义的答案是“是的,理论上你可以不用 Rtools”。实际上,您不能(在 Windows 上)。

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

    3. 如果您从事 HPC,您可能还想研究一下 Linux。

    【讨论】:

    • 他说了什么。请注意:如果您缺少 Windows 计算机或 VM,可以使用win-builder 服务构建软件包的 windows 二进制文件并下载。
    • @Dirk 再次非常感谢!我做到了 2 :)
    • @Inmybrain:很酷,所以请随意接受答案。
    【解决方案2】:

    感谢 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, type="source")

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

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

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

      library("YourPkgName", lib.loc = "YourPersonalLibraryDirectory")

    【讨论】:

    • 你应该按照 WRE 手册使用R CMD build --binary ...
    • @DirkEddelbuettel 感谢您的建议!
    • 这是要走的路,因为它将创建 binary 包,然后您可以将其安装在节点上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2013-04-03
    • 2012-11-25
    • 2010-11-05
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多