为了避免生成Makevars文件,是否需要在Imports和LinkingTo中都指定Rcpp?

时间:2018-06-21 21:37:33

标签: r rcpp rcpp11

根据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)

还是都需要?

1 个答案:

答案 0 :(得分:3)

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

出于所有意图和目的,

LinkingTo:是R的指令,用于告诉编译器所需的头文件在哪里。针对Rcpp构建的程序包 必须具有此功能。

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

所有这些都在 Writing R Extensions 手册中针对R进行了记录,而在我们的程序集插图中针对Rcpp进行了记录。