在带有Rcpp的R包中将头文件(.h)与cpp文件一起使用

pol*_*ist 5 c++ r rcpp

可能重复:
将第三方头文件与Rcpp一起使用

注意:这是从此处开始的讨论的继续: 将第三方头文件与Rcpp一起使用。但是,这个问题足够不同,以至于我认为我会将它摆成自己的问题。

我有一个名为的头文件coolStuff.h,其中包含一个awesomeSauce(arg1)我想在R包中的cpp文件中调用的函数。

包装结构:

  • 包裹名字

    • 描述
    • [男人]

    • 名称空间

    • [R
      • 一些脚本
    • src
      • theCppFile.cpp
      • otherCppFile.cpp

TheCppFile.cpp的代码:

`#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
double someFunctionCpp(double someInput){

 double someOutput = awesomeSauce(someInput);

return someOutput;`
Run Code Online (Sandbox Code Playgroud)

1)我应该coolStuff.h在包目录结构中放置什么位置,以便在生成包并编译cpp文件时,将包括coolStuff.h中的代码。

2)我该怎么称呼这个文件coolStuff.h

3)同样,如果我想otherCppFile.cpptheCppFile.cpp哪里打电话

再次感谢您的帮助。我从上一次谈话中学到了很多东西。如果某处有一些标准文档,我会对RTFM感到满意,只需指出正确的方向即可。

Dir*_*tel 4

一个完整的小插图致力于使用 Rcpp 构建一个包,是的,您应该看看它。

Rcpp 属性确实对于快速和简单的事情来说非常棒,但即使它们也依赖于包:如果不是 RcppArmadillo 包提供的内联插件,你就无法在 RcppArmadillo 上执行它们的 Depends: 操作。

简而言之:是的,请阅读详细手册和/或查看(当前)CRAN 上使用 Rcpp 和依赖于它的 95 个软件包。

编辑: 这里有一个可能的快捷方式: ifcoolStuff.h只是一个标头(因此没有链接到外部库),您可以通过在与源相同的目录中使用它来获取它。这有助于快速sourceCpp()探索。但对于一个包,您仍然需要执行额外的步骤,但其中一些步骤已经自动化 — 请参阅 Rcpp 属性小插图。

编辑2:我刚刚重读了你之前的问题。这个新问题毫无意义,也没有增加任何内容。您阅读并理解我们上次告诉您的内容了吗?