3

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

我需要在 Makevars 文件中添加什么来设置编译器/链接器选项来查找 boost?抱歉,我不太擅长 Make。

我在 Linux 环境中工作

是的,我查看了 RBGL,但没有在该包中找到生成文件

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

4

1 回答 1

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...标志。标题位置的 PKG_CFLAGS 的同上。

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

于 2012-03-24T00:28:53.217 回答