最近,我制作了一个R包,它使用Rcpp集成R和C ++。 C ++库Boost用于多线程。我想知道我的包是否可以构建在http://win-builder.r-project.org/上?
我发现定义了一个Make变量--- BOOSTLIB ---,如http://cran.r-project.org/bin/windows/contrib/ThirdPartySoftware.html所示。
我尝试使用仅限标头的库,没关系,但是当我尝试使用单独编译的库Boost.Thread时,出现了“没有这样的文件”或“未定义的引用”错误。也许lib路径错了。但是,我几乎找不到任何关于胜利者的话。我是否只能使用仅限标头的库,或者有没有办法配置Makevars.win来查找单独编译的Boost.Thread库?
或许我可以在我的软件包中包含Boost源文件,但我认为这不是一个好方法,而且我也不知道如何包含(我还没有尝试过)。
我发现有一个R包BH试图为R提供Boost。这非常有帮助,我非常感谢BH的作者所做的工作,但是,当我问这个时,Boost.Thread不包括在内题。也许我可以等到他们包括Boost.Thread。但我现在更喜欢自己做,所以我可以学到更多。
答案 0 :(得分:5)
目前BH维护者。几点:
如上所述,我们的BH软件包仅提供Boost的(一部分)标头。包根据需要增长,我们可能会很快添加(因为我有一个请求)。
Win-Builder支持BOOSTLIB
在Windows上设置标头;正如评论所说,我不认为它提供了图书馆。在RQuantLib我只使用它来获取QuantLib类所需的标题。
有几个软件包在Windows上遇到了线程问题;同事BH-coauthors周杰伦和迈克在他们的bigmemory包及其支持包的背景下尝试过 synchronicity。但到目前为止,他们并没有提供Windows支持,因为Windows不同,并且在使用一些Unix惯用语时也很痛苦。
修改:以下是来自README的synchronicity:
目前只在unix平台上支持同步性,因为 使用64位Windows的Boost或MinGW中的错误。我们会扩大 一旦解决了这些问题,就立即支持Windows。
如果要将此程序包与32位Windows一起使用,则可能是 可能(注释掉描述中的OS_type行)。
2010年10月30日。修改了配置以解决Solaris问题。
总之,没有预先构建的工具可供您依赖。