5

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

注意:这是从此处开始的讨论的延续: Using 3rd party header files with Rcpp。但是,这个问题非常不同,以至于我认为我会将其作为自己的问题提出。

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

封装结构:

  • 包裹名字

    • 描述
    • [男人]

    • 命名空间

    • R
      • 一些脚本
    • 源代码
      • Cpp文件.cpp
      • 其他CppFile.cpp

CppFile.cpp 的代码:

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

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

 double someOutput = awesomeSauce(someInput);

return someOutput;`

1)我应该放在coolStuff.h包目录结构中的哪个位置,以便在构建包并编译cpp文件时,将包含来自coolStuff.h的代码。

2)我应该如何调用这个文件coolStuff.h

otherCppFile.cpp3)同样,如果我想调用theCppFile.cppwhere do

再次感谢你的帮助。我从上次的谈话中学到了很多。如果在某处有一些标准文档,我会很高兴 RTFM,只要指出我正确的方向。

4

1 回答 1

4

一个完整的小插图专门用于使用 Rcpp 构建一个包,是的,你应该看看它。

Rcpp 属性确实非常适合快速和简单的事情,但即使它们也依赖于包:如果不是 RcppArmadillo 包提供的内联插件,你不能做他们的 Depends: on,比如说,RcppArmadillo。

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

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

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

于 2013-01-10T22:25:55.457 回答