我实验室中的 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。如果错误,请纠正我。
我可以绕道运行代码吗?
感谢您的任何评论和想法。
簡單地說:
-
狭隘的答案是"是的,理论上你可以不用Rtools",如果你碰巧安装了gcc等人的二进制相同版本(包括补丁(。 实际上,您不能(在Windows上(。
-
一种简单的解决方法是在 HPC 服务器外部编译代码包,并在该包上部署该包的二进制生成。容易。二进制文件不需要 Rtools!
-
如果你做HPC,你可能还想研究Linux。
感谢Dirk Eddelbuettel,我继续使用解决方案2来处理我的问题
这就是我所做的。
-
生成包含.cpp代码的 R 包,并创建包源代码(例如 YourPkgName_1.0.tar.gz(
-
安装软件包以在桌面中创建库。例如
install.packages(pkgs = "C:/Users/User/Desktop/YourPkgName_1.0.tar.gz", 存储库 = 空,类型="源"(
-
将已安装的库从默认文件夹(桌面(移动到服务器。我的本地网址是
C:\程序文件\R\R-3.5.1\库
-
通过在 R 脚本中包含以下命令,可以在未安装 Rtools 的服务器下加载 R 中的 cpp 函数。
library("YourPkgName", lib.loc = "YourPersonalLibraryDirectory"(