R包:在构建时添加到RcppExports.R的下划线

时间:2018-01-02 20:09:58

标签: r rstudio r-package

我使用Rstudio在同一个R包上的不同计算机上工作,但出于某种原因,每当我构建包时,一些计算机将通过添加下划线来修改RcppExports.RRcppExports.cpp文件一些功能的前面。例如,在编译包之前和之后查看文件之间的差异时可以找到这个(第一行是之前,第二行是之后):

    .Call('PkgName_FunctionName', PACKAGE = 'PkgName', arguments)
    .Call('_PkgName_FunctionName', PACKAGE = 'PkgName', arguments)

这让我感到困扰,因为git认为这是一种变化。

我的问题是:

  • 为什么包含下划线?
  • 如何编译软件包而不修改任何文件?

1 个答案:

答案 0 :(得分:4)

确保两台计算机上都有相同(当前)版本的Rcpp。然后RcppExports.{R,cpp}文件将是相同的。

这一变化是R上游(R 3.4.0左右)的要求,我们需要进行调整。

另请注意,您的registration=TRUE文件中可能需要NAMESPACE,在这种情况下,表单将成为

.Call(`_PkgName_FunctionName`, arguments)