gpt4 book ai didi

c++ - 如何使用 R 和 RCPP 编译 dll?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:11 25 4
gpt4 key购买 nike

我已经编写了一个 .cpp 文件,我想将它编译成一个 .dll 以便与 R 和 RCPP 一起使用。 (不使用内联包)。我正在使用 WinXP 和 R 2.13.2 以及 RCPP 0.9.7。我正在使用 Rtools 2.14。

  1. 如何在 minGW 的搜索路径中包含 Rcpp.h?我知道我需要包含的文件位于 C:\Program Files\R\R-2.13.2\library\Rcpp\include 中。但是,我无法将它们“添加”到“搜索路径”。

  2. 我厌倦了临时的“hack”。我将 C:\Program Files\R\R-2.13.2\library\Rcpp\include 的内容复制到 minGW 的包含目录中。编译/链接过程从 myfile.cpp 到 myfile.o,但在编译 myfile.dll 之前抛出一堆错误。

我已将 C:\Program Files\R\R-2.13.2\bin\i386 添加到我的 PATH 中,我正在从 WinXP 命令提示符调用 R CMB SHLIB myfile.cpp。

我应该做什么?

最佳答案

几个要点:

  1. MinGW 的 gccg++ 编译器的行为与 gcc 系列的其他编译器一样。这意味着没有“添加到搜索路径”:您使用 -I/some/dir 开关添加该路径和目录。同样,-L/some/lib 将该目录添加到链接器路径。

  2. 真的想要使用Makefile。我们的Rcpp软件包带有很多示例;您可以查看 ConvolveBenchmarks 目录中的 Makefile

  3. 但您真正想要的是使用所谓的“包”。我们有一个完整的小插图 Rcpp-package致力于此。它可以像调用为您创建包的 rcpp.package.skeleton() 函数一样简单——并且动态库作为副作用被创建。

  4. 如果这一切太令人困惑,请尝试熟悉 inline第一的。使用 verbose=TRUE 参数来查看 inline构建动态库!

  5. 最后,我们拼写它Rcpp ,而不是 RCPP。

rcpp-devel 邮件列表也是一个很好的帮助来源。

关于c++ - 如何使用 R 和 RCPP 编译 dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com