在 R 包中强制重建源

Force source rebuild in R package

本文关键字:重建 包中强      更新时间:2023-10-16

这类似于这个问题和答案,只是专门用于 R 包。由于 R 使用自己的自定义构建过程,因此使用 Rcpp 强制重建的正确方法是什么?

(出于我不会在这里讨论的原因,我所有的C++代码都位于/pkg/src 之外,并通过一个永不更改的简单包装函数调用。出于这个原因,当重要的代码发生变化时,R 认为什么都没有改变,并声明了可怕的make: Nothing to be done for 'all'.

最简单的

解决方案是将标志--preclean添加到R CMD INSTALL。在 Rstudio 中,可以在项目选项 -> 生成工具 -> 生成并重新加载 - R CMD 安装附加选项下添加此标志。

关于

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

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

R CMD INSTALL sourceTarballOfPackage_0.1.2.tar.gz

那么问题就变成了从哪里获得源代码:CRAN,GitHub,GitLab,BitBucket,...但我们有帮手。

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