使用Rcpp安装R包是否需要Rtools(Windows)

时间:2017-01-03 00:26:16

标签: r rcpp cran

我正在用Rcpp制作一个R包。它在我安装了Rtools的机器上工作正常。但最近,我尝试在不同的机器(Windows)上本地安装我的软件包并得到编译错误。原因是在那台机器上没有g ++编译器(对于Windows,g ++与Rtools一起提供)。安装Rtools之后,它运行得很好。

所以问题是,如果我将它上传到CRAN,是否还需要用户手动安装Rtools?或者函数install.package()是否为它们检测并安装了Rtools?

另外,如果你们知道一些用Rcpp写的包,请告诉我。我想看看它是如何工作的。

2 个答案:

答案 0 :(得分:8)

  

所以问题是,如果我将它上传到CRAN,是否还需要用户手动安装Rtools?

没有

  

或者install.package()函数是否为它们检测并安装了Rtools?

没有

CRAN会构建预编译的二进制文件,可以由Windows和MacOS用户安装,而无需编译器和相关工具。

  

另外,如果你们知道一些用Rcpp写的包,请告诉我。我想看看它是如何工作的。

rr <- devtools::revdep("Rcpp")
length(rr) ## 907

或查看Rcpp page on CRAN

答案 1 :(得分:4)

用户,例如通过install.package()下载它的人实际上正在下载一个&#34;编译的#34;由CRAN维护的打包版本称为二进制文件。他们只需要一份R.

另一方面,开发人员,例如创建它的人需要特定于系统的开发工具。对于 Windows平台上的用户,他们必须在其计算机上本地安装Rtools。对于 macOS 上的开发人员,他们必须拥有自己的gfortran binaries and xcode developer line tools副本。

最后,有很多这样的Rcpp包可以寻找灵感......