gpt4 book ai didi

c++ - 如何通过 Rcpp 在 C++ 中使用 Boost 库

转载 作者:太空狗 更新时间:2023-10-29 19:44:03 26 4
gpt4 key购买 nike

我在 R 3.0.0 上使用 Rcpp 包。我正在尝试运行 this example , 但我不能,因为我不知道如何使用 Boost

我在目录/Users/giorgi/boost_1_53_0 中安装了 Boost 因此我设置了 Sys.setenv("PKG_CXXFLAGS"="-I/Users/giorgi/boost_1_53_0") 但我不确定我我在做正确的事。抱歉,我对这些东西一无所知!

最佳答案

我会尝试一些事情:

  1. 使用 Boost 编写一个三行的独立 C++ 程序,并编译它。这只是为了向你自己证明你拥有 -I/some/dir右旗。

  2. 编写一个简单的 Rcpp 函数并使用例如 sourceCpp()编译并加载它。

  3. 创建文件 ~/.R/Makevars并设置 -I来自 1 的标志。这里是 CXXFLAGS 中的任一个或 CFLAGS R CMD ... 将使用它们因此 sourceCpp() .

  4. 如果一切都失败了,创建一个小包并添加 LinkingTo: BH因为 CRAN 包 BH 提供了您可以使用的 Boost header (一旦您安装了 BH)。

编辑,大约 1 1/2 年后

您还可以使用 // [[Rcpp::depends(BH)]]例如在这段代码中

#include <Rcpp.h>
#include <boost/math/common_factor.hpp> // included in BH

// [[Rcpp::depends(BH)]]

using namespace Rcpp;

// [[Rcpp::export]]
int computeGCD(int a, int b) {
return boost::math::gcd(a, b);
}

当我们同时更新 Rcpp 和 BH 时构建和运行得很好:

R> library(Rcpp)
R> sourceCpp("/tmp/simpleBoost.cpp")
R> computeGCD(6, 15)
[1] 3
R>

关于c++ - 如何通过 Rcpp 在 C++ 中使用 Boost 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131462/

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