如何构建一个使用Rcpp和外部c ++库的R包?

Xia*_* Gu 8 rcpp

比如boost,我在哪里可以指定以下内容:

1.External c++ header file include path 
2.External c++ source file 
3.External c++ link library file path
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 13

这一切都在src/Makevars解释中

  • @DirkEddelbuettel 我强烈建议花时间查看[SO“如何回答”常见问题解答](https://stackoverflow.com/help/how-to-answer)。您的原始答案和最近的评论都没有提供链接的上下文;变形做到了。[预期行为](https://stackoverflow.com/help/behavior) 和[行为准则](https://stackoverflow.com/conduct) 也可能有所帮助。作为该主题的主要中小企业,您可能忘记了其他人并不了解您编写的工具。如果您的答案按照您的建议已经过时,为什么不更新或删除它呢? (2认同)

Met*_*hic 5

Dirk 的论文“使用外部 C++ 库创建 R 包的十三个简单步骤”给出了一个示例src/Makevars

CXX_STD = CXX11
PKG_CFLAGS = -I. -DGMP -DSKIP_MAIN
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -lgmpxx -lgmp
Run Code Online (Sandbox Code Playgroud)

如您所见,PKG_LIBS此文件中指定了其他库。该src/Makevars方法假设您使用标准包布局将 C++ 代码合并到您的项目中,如Rcpp.package.skeleton()、 withNAMESPACE等生成DESCRIPTION的。

根据 Dirk 的上述评论,当使用该函数合并 C++ 代码时,当前无法指定外部库sourceCpp,因为该函数提供了一个应该是多平台的接口。