在R包中强制重建源代码

时间:2017-01-04 18:42:06

标签: c++ r makefile packages rcpp

这类似于this question and answer,除了R包专用。由于R使用自己的自定义构建过程,使用Rcpp强制重建的正确方法是什么?

(由于我不会进入这里的原因,我的所有C ++代码都位于/ pkg / src之外,并且通过一个永远不会改变的简单包装函数来调用。因此,当重要的代码时改变,R认为没有任何改变并宣布可怕的make: Nothing to be done for 'all'.

2 个答案:

答案 0 :(得分:1)

关于

  

使用Rcpp强制重建的正确方法是什么

显而易见的答案是从源头重建

R CMD INSTALL sourceTarballOfPackage_0.1.2.tar.gz

然后问题变成了获取源的地方:CRAN,GitHub,GitLab,BitBucket,......但我们有帮助。

如果你的代码是内部的,那么你只需要重建包装器来调用它,它仍然在包中的src/中。这与另一个链接外部资源的R(cpp)包没有什么不同。

答案 1 :(得分:1)

最简单的解决方案是将标记--preclean添加到R CMD INSTALL。在Rstudio中,可以在项目选项 - >下添加此标志。构建工具 - >构建和重新加载 - R CMD INSTALL附加选项。