【发布时间】:2021-11-22 06:06:32
【问题描述】:
我知道 NAMESPACE 文件是由 Rcpp.package.skeleton() 创建的。但是为什么Rcpp::compileAttributes()会重写NAMESPACE文件呢?
【问题讨论】:
我知道 NAMESPACE 文件是由 Rcpp.package.skeleton() 创建的。但是为什么Rcpp::compileAttributes()会重写NAMESPACE文件呢?
【问题讨论】:
欢迎来到 StackOverflow。但简而言之:它没有。
也许您正在调用其他东西,它调用compileAttributes() 和另一个函数。一步一步来证明compileAttributes() 不会修改NAMESPACE 文件。
edd@rob:~$ cd /tmp/
edd@rob:/tmp$ Rscript -e 'Rcpp::Rcpp.package.skeleton("demopkg")'
Creating directories ...
Creating DESCRIPTION ...
Creating NAMESPACE ...
Creating Read-and-delete-me ...
Saving functions and data ...
Making help files ...
Done.
Further steps are described in './demopkg/Read-and-delete-me'.
Adding Rcpp settings
>> added Imports: Rcpp
>> added LinkingTo: Rcpp
>> added useDynLib directive to NAMESPACE
>> added importFrom(Rcpp, evalCpp) directive to NAMESPACE
>> added example src file using Rcpp attributes
>> added Rd file for rcpp_hello_world
>> compiled Rcpp attributes
edd@rob:/tmp$ cd demopkg/
edd@rob:/tmp/demopkg$ md5sum NAMESPACE # compute a checksum
2629c850958ab6b8a458474be920afa5 NAMESPACE
edd@rob:/tmp/demopkg$ Rscript -e 'Rcpp::compileAttributes()'
edd@rob:/tmp/demopkg$ md5sum NAMESPACE # getting same checksum, no change
2629c850958ab6b8a458474be920afa5 NAMESPACE
edd@rob:/tmp/demopkg$
【讨论】:
devtools 工作流程,则有一些操作,如document(),将两者调用Rcpp::compileAttributes() 和 影响 NAMESPACE 文件,即使 Rcpp::compileAttributes() 本身并不是影响 NAMESPACE 文件的因素