为什么我们都"包括"和"依赖"RcppArmadillo?

Hei*_*erg 3 r rcpp

要使用RcppArmadillo,我们经常被指示在顶部有以下几行:

#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
Run Code Online (Sandbox Code Playgroud)

为什么我们两个都需要?是不是#include指令,足以让我们有机会获得的范围内定义的所有功能RcppArmadillo

Dir*_*tel 6

有两种不同的东西在起作用:

  1. 编译器需要头文件RcppArmadillo.h才能知道来自(Rcpp)Armadillo,Rcpp的类型(因为这个也拉入Rcpp.h)因此R.我猜你知道你需要这个.但......

  2. R如何知道添加此-I...标志所需的标志?它不会!

包级别LinkingTo:,标题大小写的帮助.但在更深层次的意义上,有时我们需要标题链接(即RcppGSL),在这种情况下,我们通过Rcpp::dependsRcpp属性获取的钩子确保我们可以做到这一点.

所以// [[Rcpp::depends(RcppArmadillo)]]有助于sourceCpp()使用.包装中不需要它.像这样的"插件"在Rcpp Attributes插图中稍微讨论一下.