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

问题描述 投票:2回答:1

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

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

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

我的问题是:

  • 为什么包含下划线?
  • 如何编译包不会修改任何文件?
r rstudio r-package
1个回答
4
投票

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

这个变化是R上游的需求(大约R 3.4.0),我们需要调整。

另请注意,您可能希望在registration=TRUE文件中使用NAMESPACE,在这种情况下表单将成为

.Call(`_PkgName_FunctionName`, arguments)
© www.soinside.com 2019 - 2024. All rights reserved.