使具有依赖关系的c++库在R中可用

Make C++ library with dependencies available in R

本文关键字:库在 c++ 依赖 关系      更新时间:2023-10-16

我从别人那里找到了一个c++库,它实现了我在R中计算所需要的东西。他们的库包含大约30个。cpp和。h文件,其中包含无数相互依赖的文件。他们的库还包含matlab的安装程序文件,但我想使这个库的功能在R中可用。

首先,我想使用Rcpp包中的sourceCpp函数,但是它的文档说它只适用于独立文件。因此,我现在看到的唯一选择是遍历所述库中的所有文件,复制粘贴所有共享函数在所有.cpp文件中,使用它们获得独立的。cpp文件,然后sourceCpp它们。

是否有更好的方法使一个完整的,相互依赖的c++库在R中可用?

是的,创建一个包。Rcpp.package.skeleton()是一个很好的开端。

然后只是把你所有的源和头文件放到src/和R将知道如何做剩下的。只有在实际使用外部库时,才需要声明对它们的更多依赖。

然后查看关于导出接入点的Rcpp属性小插图,这基本上是您已经通过[[Rcpp::export]]等pp做的。