我使用Rstudio在同一个R包上的不同计算机上工作,但出于某种原因,每当我构建包时,一些计算机将通过在某些函数前添加下划线来修改RcppExports.R
和RcppExports.cpp
文件。例如,在查看编译包之前和之后的文件之间的差异时可以找到这个(第一行是之前,第二行是之后):
.Call('PkgName_FunctionName', PACKAGE = 'PkgName', arguments)
.Call('_PkgName_FunctionName', PACKAGE = 'PkgName', arguments)
这让我感到困扰,因为git认为这是一种变化。
我的问题是:
确保两台机器上都有相同(当前)版本的Rcpp。然后RcppExports.{R,cpp}
文件将是相同的。
这个变化是R上游的需求(大约R 3.4.0),我们需要调整。
另请注意,您可能希望在registration=TRUE
文件中使用NAMESPACE
,在这种情况下表单将成为
.Call(`_PkgName_FunctionName`, arguments)