r - 为什么我们在 RcppArmadillo 上同时使用 "include"和 "depends"?

标签 r rcpp

要使用 RcppArmadillo,我们通常会被指示在顶部添加以下行:

#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]

为什么我们需要两者? #include 指令是否足以让我们访问 RcppArmadillo 范围内定义的所有函数?

最佳答案

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

  1. 编译器需要 header RcppArmadillo.h 才能了解 (Rcpp)Armadillo、Rcpp(因为这个也拉入 Rcpp.h)和 R 的类型。我想你知道你需要这个。但是……

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

包级别 LinkingTo: 有助于 header 大小写。但在更深层次的意义上,有时我们需要标题 链接(即 RcppGSL),在这种情况下,我们在这里通过 Rcpp::depends 进入 Rcpp 属性的钩子(Hook)确保我们可以做这个。

所以 //[[Rcpp::depends(RcppArmadillo)]] 有助于 sourceCpp() 使用。包中不需要它。像这样的“插件”在 Rcpp 属性小插图中进行了一些讨论。

关于r - 为什么我们在 RcppArmadillo 上同时使用 "include"和 "depends"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310460/

相关文章:

rcpp - RcppArrayFire 中的随机洗牌

r - mgcv:如何指定平滑和因子之间的交互?第二部分

r - 为 data.table 的列设置多个不同的属性

r - 多级建模的协方差结构

R:如何组合两个字符向量以使结果看起来像 char1 [char2]

r - 在 Rcpp 中设置日期时间时区

gcc - 使用 R 内联链接到另一个包

r - 如何在给定时间段内抓取所有 subreddit 帖子

Rcpp调用的c++计数算法模板

c++ - 计算 LogicalMatrix R/C++/Rcpp 的全真行的最快方法