2

根据Rcpp FAQ (2.15. What about the new 'no-linking' feature),因为 Rcpp 版本 0.11.0 我们可以避免在 Makevars 文件中指定 LAPACK/BLAS/Fortran,实际上如果我们遵循,则完全避免 Makevars这些说明。

... only two things are required: • an entry in DESCRIPTION such as Imports: Rcpp (which may be versioned as in Imports: Rcpp (>= 0.11.0)), and • an entry in NAMESPACE to ensure Rcpp is correctly instantiated, for example importFrom(Rcpp, evalCpp).

但是不是Imports为 Rcpp 添加一行,aLinkingTo也可以吗?也就是说,我可以使用:

LinkingTo: Rcpp (>= 0.11.0)

代替:

Imports: Rcpp (>= 0.11.0)

还是两者都需要?

4

1 回答 1

5

简而言之,不——正如我们所说,你需要两者,因为它们有不同的目的。

LinkingTo:是,出于所有意图和目的,R 的指令告诉编译器所需的头文件在哪里。针对 Rcpp 构建的包必须有这个。

Imports:处理包命名空间和包加载/附加时的初始化。Rcpp“几乎”纯粹基于标头,但需要执行一些代码。

所有这些都记录在编写 R 扩展手册中的 R 和我们的包小插曲中的 Rcpp 中。

于 2018-06-21T22:00:36.607 回答