c++ - 是否可以在 [win-builder](http ://win-builder. r-project.org/) 上构建一个使用 Rcpp 和 Boost.Thread 的 R 包?

标签 c++ multithreading r boost rcpp

最近做了一个R包,用Rcpp把R和C++整合起来。而 C++ 库 Boost 用于多线程。我想知道我的包是否可以构建在 http://win-builder.r-project.org/ 上?

我发现定义了一个Make变量---BOOSTLIB---,如图http://cran.r-project.org/bin/windows/contrib/ThirdPartySoftware.html .

我尝试使用仅包含 header 的库,没问题,但是当我尝试使用单独编译的库 Boost.Thread 时,出现“没有这样的文件”或“ undefined reference ”错误。也许 lib 路径是错误的。但是,我几乎找不到任何关于 win-builder 的解释。我可以只使用头文件库还是有办法配置 Makevars.win 以找到单独编译的 Boost.Thread 库?

或者也许我可以在我的包中包含 Boost 源文件,但我认为这不是一个好方法,而且我也不知道如何包含(我没有尝试过)。

我发现有一个 R 包 BH 试图为 R 提供 Boost。这非常有帮助,我非常感谢 BH 作者所做的工作,但是,当我问这个时,Boost.Thread 不包括在内题。也许我可以等到他们包含 Boost.Thread 时。但我现在更喜欢自己做,这样我可以学到更多。

最佳答案

当前 BH维护者在这里。几点:

  • 如前所述,我们的 BH包仅提供来自 Boost 的(部分) header 。该软件包会根据需要增长,我们可能会尽快添加更多(因为我有一个请求)。

  • Win-Builder 支持 BOOSTLIB 也可以在 Windows 上设置 header ;正如评论所说,我认为它不提供图书馆。在 RQuantLib我也只使用它来获取 QuantLib 类所需的 header 。

  • 几个软件包解决了 Windows 上的线程问题; BH 的共同作者 Jay 和 Mike 在他们的 bigmemory 的背景下进行了尝试包及其支持包,例如 synchronicity .但截至目前,它们还没有提供 Windows 支持,因为,好吧,Windows 是不同的,并且对某些 Unix 习语感到厌烦。

编辑:这是 README来自 synchronicity :

synchronicity is currently only supported on unix platforms because of a bug in either Boost or MinGW with 64-bit Windows. We'll expand support to Windows as soon as these have been resolved.

If you want to use this package with 32-bit Windows, it may be possible (comment out the OS_type line in DESCRIPTION).

October 30, 2010. Modified configure to fix up a Solaris problem.

不,简而言之,没有您可以依赖的预构建工具。

关于c++ - 是否可以在 [win-builder](http ://win-builder. r-project.org/) 上构建一个使用 Rcpp 和 Boost.Thread 的 R 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651954/

相关文章:

c++ - OpenCv 断言失败

c - 如何预加载大型数组以并行缓存?

c++ - 如何在 moc 文件中使用级联命名空间?

c++ - 虚拟成员函数更改 typeid 的结果 - 为什么?

android - Android 服务是否从单独的线程而不是 UI 运行?

R - 如何将多个 bool 列(不知道有多少)组合成一列

r - dplyr summarise()和summarise_each()对提供的函数进行额外的调用

r - 多项式逻辑回归中的权重过多并且代码运行了几个小时

c++ - 如何查找指向 IPv6 地址的 SRV 记录

c# - 为什么没有像 ParameterizedThreadStart<T> 这样的类?