将C ++与R包中的boost相关联

时间:2012-03-23 23:03:41

标签: boost graph makefile package rcpp

我正在为网络中的数据流制作R包。为了速度,一些代码是用C ++编写的,并且使用我自己的图算法实现。我想重新编写代码以使用Boost Graph Library。

我需要在Makevars文件中放置什么来设置编译器/链接器选项才能找到提升?对不起,我对Make不是很好。

我在Linux环境中工作

是的我查看了RBGL,但没有在该软件包中找到makefile

如果重要,我使用Rcpp来连接R和C ++代码

1 个答案:

答案 0 :(得分:4)

这并不难。默认情况下,每个Rcpp包都有一个默认的src/Makevars,其中包含

## Use the R_HOME indirection to support installations of multiple R version
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"`

通过询问R动态找到Rcpp本身的库。您只需展开它并添加

-lboost_graph

(和/或可能是并行或mt变体)。如果他们安装在一个不寻常的地方,也要添加-L...标志。 Dito for PKG_CFLAGS用于标题位置。

就是这样。有关构建R软件包的更多详细信息,请参阅Writing R Extensions手册。