要使用RcppArmadillo
,我们经常被要求在顶部插入以下内容:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
为什么我们需要两者? #include
指令不足以让我们访问RcppArmadillo
范围内定义的所有函数吗?
答案 0 :(得分:5)
有两种不同的东西在起作用:
编译器需要标题RcppArmadillo.h
才能知道来自(Rcpp)Armadillo,Rcpp的类型(因为这个也拉入Rcpp.h)因此R.我认为你认识你需要这个。但是......
R如何知道添加此标题所需的-I...
标志?它不会!
在程序包级别,LinkingTo:
有助于标题大小写。但在更深层次的意义上,有时我们需要标题和链接(即RcppGSL),在这种情况下,我们通过Rcpp::depends
将这里的钩子转换为Rcpp属性确保我们可以做到这一点。
因此// [[Rcpp::depends(RcppArmadillo)]]
有助于sourceCpp()
使用。包装中不需要它。 &#34;插件&#34;像这样在Rcpp Attributes插图中稍微讨论一下。