根据 Rcpp FAQ (2.15.新的"无链接"功能呢(,从 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).
但是,与其为 RCPP 添加Imports
行,LinkingTo
是否也有效? 也就是说,我可以使用:
LinkingTo: Rcpp (>= 0.11.0)
而不是:
Imports: Rcpp (>= 0.11.0)
还是两者都需要?
简而言之,不 - 正如我们所说,您需要两者,因为它们有不同的目的。
LinkingTo:
,出于所有意图和目的,R告诉编译器所需的头文件在哪里的指令。 针对 Rcpp 构建的软件包必须具有此功能。
Imports:
处理包命名空间和包加载/附加时的初始化。Rcpp"几乎"是纯粹基于标头的,但需要执行一些代码。
所有这些都在编写 R 扩展手册中为R记录,在我们的软件包小插图中记录了 Rcpp。