为什么我们在 RcppArmadillo 上同时 "include" 和 "depends"?
Why do we both "include" and "depends" on RcppArmadillo?
要使用 RcppArmadillo
,我们通常会被指示在顶部添加以下行:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
为什么我们需要两者? #include
指令是否足以让我们访问 RcppArmadillo
范围内定义的所有函数?
有两个不同的因素在起作用:
编译器需要 header RcppArmadillo.h
来了解 (Rcpp)Armadillo、Rcpp 的类型(因为这个也包含 Rcpp.h ) 因此 R. 我想你知道你需要这个。但是...
R 怎么知道要为此添加 -I...
标志?不会的!
在 包级别 LinkingTo:
有助于 header 案例。但在更深层次的意义上,有时我们需要 headers and 链接(即 RcppGSL),在这种情况下,我们通过 Rcpp::depends
进入 Rcpp 属性的钩子确保我们可以做到这一点。
因此 // [[Rcpp::depends(RcppArmadillo)]]
有助于 sourceCpp()
使用。包中不需要它。 "Plugins" 像这样在 Rcpp 属性小插图中进行了一些讨论。
要使用 RcppArmadillo
,我们通常会被指示在顶部添加以下行:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
为什么我们需要两者? #include
指令是否足以让我们访问 RcppArmadillo
范围内定义的所有函数?
有两个不同的因素在起作用:
编译器需要 header
RcppArmadillo.h
来了解 (Rcpp)Armadillo、Rcpp 的类型(因为这个也包含 Rcpp.h ) 因此 R. 我想你知道你需要这个。但是...R 怎么知道要为此添加
-I...
标志?不会的!
在 包级别 LinkingTo:
有助于 header 案例。但在更深层次的意义上,有时我们需要 headers and 链接(即 RcppGSL),在这种情况下,我们通过 Rcpp::depends
进入 Rcpp 属性的钩子确保我们可以做到这一点。
因此 // [[Rcpp::depends(RcppArmadillo)]]
有助于 sourceCpp()
使用。包中不需要它。 "Plugins" 像这样在 Rcpp 属性小插图中进行了一些讨论。