【问题标题】:Why does Rcpp::compileAttributes() rewrite the NAMESPACE file?为什么 Rcpp::compileAttributes() 会重写 NAMESPACE 文件?
【发布时间】:2021-11-22 06:06:32
【问题描述】:

我知道 NAMESPACE 文件是由 Rcpp.package.skeleton() 创建的。但是为什么Rcpp::compileAttributes()会重写NAMESPACE文件呢?

【问题讨论】:

    标签: rcpp r-package


    【解决方案1】:

    欢迎来到 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$ 
    

    【讨论】:

    • 非常感谢您的快速回复。我认为我的步骤搞砸了并导致了问题。
    • @Volderay 特别是,如果您使用的是devtools 工作流程,则有一些操作,如document(),将两者调用Rcpp::compileAttributes() 影响 NAMESPACE 文件,即使 Rcpp::compileAttributes() 本身并不是影响 NAMESPACE 文件的因素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    相关资源
    最近更新 更多