R 包:构建时添加到 RcppExports.R 的下划线
R package: underscores added to RcppExports.R when building
我在不同的计算机上使用 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)的要求,我们需要进行调整。
另请注意,您可能希望在 NAMESPACE
文件中添加 registration=TRUE
,在这种情况下,表单将变为
.Call(`_PkgName_FunctionName`, arguments)
我在不同的计算机上使用 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)的要求,我们需要进行调整。
另请注意,您可能希望在 NAMESPACE
文件中添加 registration=TRUE
,在这种情况下,表单将变为
.Call(`_PkgName_FunctionName`, arguments)