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

R包:在构建时将下划线添加到RcppExports.R,r,rstudio,r-package,R,Rstudio,R Package,我使用Rstudio在同一个R包上的不同计算机上工作,但出于某种原因,每当我构建包时,一些计算机会通过在某些函数前面添加下划线来修改RcppExports.R和RcppExports.cpp文件。例如,当查看编译包之前和之后的文件之间的dif时,可以发现这一点(第一行是在编译包之前,第二行是在编译包之后): 这让我很困扰,因为git认为这是一种改变 我的问题是: 为什么包含下划线 我该怎么做才能使编译包不修改任何文件 确保两台机器上的Rcpp版本相同(当前)。然后,RcppExports.{R

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

这让我很困扰,因为git认为这是一种改变

我的问题是:

  • 为什么包含下划线
  • 我该怎么做才能使编译包不修改任何文件

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

这一变化是R上游的一项要求(大约R3.4.0),我们需要进行调整

还请注意,您可能希望
registration=TRUE
位于
名称空间
文件中,在这种情况下,表单将变为

.Call(`_PkgName_FunctionName`, arguments)

您是否在不同的机器上使用不同版本的R/软件包?当您提供某种或足够的信息来重新创建错误时,会更容易提供帮助。只是为了确保正确的(最新版本)确实包含下划线,对吗?是的,通过阅读最近的包源代码,它尽可能地包含下划线。改变是去年春天做出的。
.Call(`_PkgName_FunctionName`, arguments)