在 Windows 上使用 C++11 和 Rcpp 构建 R 包
Posted
技术标签:
【中文标题】在 Windows 上使用 C++11 和 Rcpp 构建 R 包【英文标题】:Building R package with C++11 & Rcpp on Windows 【发布时间】:2013-09-24 00:41:05 【问题描述】:系统规格:
操作系统 - Windows 7 Professional 和 Mac OS X 10.6.8 MinGW - 4.7.3 及以上版本 R - 3.0.1 Rcpp - 0.10.4我无法在 Windows(32 位或 64 位版本)上编译包含 C++11 代码的工作包。 MinGW 编译并安装包,但使用调用 C++11 代码的函数会导致 R 崩溃。我正在使用 C++11 的 random 库 - 特别是带有 Mersenne Twister 生成器的简陋二项分布。
我确信我的代码是正确的,因为它的 UNIX 版本(在 Mac OS X 上使用 gcc 4.7.3 编译)可以按预期工作,完全没有任何问题。
问题不在于 Rcpp 或 RcppArmadillo - 事实上,我能够通过使用 Armadillo 的随机数生成器使我的包运行。但是,我非常渴望将来能够使用 C++11,尤其是库。
关于如何解决这个问题的任何想法?
【问题讨论】:
您是否必须做任何非标准的事情才能使用 MinGW 4.7.3 而不是 Rtools 中的那个(例如重建 R & Rcpp)? 【参考方案1】:Rcpp Gallery 上有 C++11 示例——您可以尝试在最后重新运行这些示例。
特别是,this post creates RNG draws 使用三种不同的方式:R、Boost 和 C++11。你能看看这对你有用吗?
【讨论】:
是的,确实如此 - 问题出在我使用的种子上。我使用了 std::random_device - 看起来 Windows 不支持它。感谢您澄清这一点!以上是关于在 Windows 上使用 C++11 和 Rcpp 构建 R 包的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何使用英特尔的 Windows 编译器在命令行上禁用 C++0x 和/或 C++11?
无法使用 Tycho 和 Java 9 构建 Eclipse RCP 项目
我下载了RCP源码,如图,怎么部署到eclipse上?修改了源码后,怎么打包发布?