繁体   English   中英

我是否需要在描述文件中导入RccpEigen用于使用它的R包,还是“LinkingTo”足够?

[英]Do I need to import RccpEigen in the DESCRIPTION file for an R package using it, or is “LinkingTo” enough?

我使用RcppEigen.package.skeleton()作为模板,为现有的R包添加一个小函数,这样我的DESCRIPTION文件现在有了这些行:

Imports: Rcpp (>= 0.11.3), RcppEigen (>= 0.3.2.3.0)
LinkingTo: Rcpp, RcppEigen

但是,执行R CMD check --as-cran <myPackageName_1.0.0>.tar.gz会给出以下结果:

“包装取决于/应该只能在LinkingTo中进口:'RcppEigen'”

Writing R Extensions页面说:“在'LinkingTo'中指定一个包就足够了,如果它们是包含源代码或静态链接的C ++标题,则在安装时完成:包中不需要(通常不应该)列出'取决于'或'进口'字段。这包括CRAN包BH和几乎所有RcppArmadillo和RcppEigen的用户。“

我不知道任何C ++,所以我不知道这意味着什么。 我在这里创建包的过程是: RcppEigen - 从内联到包中的.cpp函数和“Map”

是否可以从“进口”中删除RcppEigen以及为什么/为什么不呢? (那么请你解释一下写作R扩展页面的内容,对于我的情况,这样我才能理解我在做什么?我实验室的R和软件专家都说他们不理解“进口”之间的区别“和”LinkingTo“。)

简述:

  1. 目前在CRAN上有25个使用RcppEigen的软件包。 这使得25个工作案例研究。 你可以看一两个。
  2. LinkingTo:一般就够了。
  3. 骨架生成器仍然添加Imports可能是一个错误。 我们不再在RcppArmadillo那样做了。

当我刚刚运行RcppArmadillo的相应功能时,我得到了

Imports: Rcpp (>= 0.11.3)
LinkingTo: Rcpp, RcppArmadillo

所以我倾向于一个bug。 我现在为它开了一张发票

更广泛地说,LinkingTo:和Imports:之间存在差异

  • 进口:是Depends的首选,现代替代品; 你还需要使用NAMESPACE
  • LinkingTo:主要用于指向头文件,就像我们在这里做的那样。

所以写R扩展,或Hadley的在线书籍了解详情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM