要使用RcppArmadillo,我们经常被指示在顶部有以下几行:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
Run Code Online (Sandbox Code Playgroud)
为什么我们两个都需要?是不是#include指令,足以让我们有机会获得的范围内定义的所有功能RcppArmadillo?
有两种不同的东西在起作用:
编译器需要头文件RcppArmadillo.h才能知道来自(Rcpp)Armadillo,Rcpp的类型(因为这个也拉入Rcpp.h)因此R.我猜你知道你需要这个.但......
R如何知道添加此-I...标志所需的标志?它不会!
在包级别LinkingTo:,标题大小写的帮助.但在更深层次的意义上,有时我们需要标题和链接(即RcppGSL),在这种情况下,我们通过Rcpp::dependsRcpp属性获取的钩子确保我们可以做到这一点.
所以// [[Rcpp::depends(RcppArmadillo)]]有助于sourceCpp()使用.包装中不需要它.像这样的"插件"在Rcpp Attributes插图中稍微讨论一下.