用Rtools / MinGW编译犰狳

时间:2014-04-30 16:41:22

标签: r mingw rcpp armadillo

我徒劳地试图为windows编译犰狳线性代数库。使用armadillo-4.200.0源代码,我安装了Rtools-3.1,并在路径中安装了MinGW的msys。

因为我的最终目标是使用Rcpp和RcppArmadillo,我的想法是我需要使用相同的编译器制作犰狳,因为它将用于编译我的Rcpp / RcppArmadillo文件。不幸的是,在尝试编译犰狳时:

$ ./configure
[...snip...]
-- The CXX compiler identification is unknown
-- Check for working CXX compiler: cl
CMake Warning at CMakeLists.txt:3 (PROJECT):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.

CMake Error: your CXX compiler: "cl" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
[...snip...]

(我尝试将CMAKE_CXX_COMPILER设置为我的Rtools gcc.exe而没有运气。)

我相信它正在寻找可视化C编译器,尽管文档暗示它可以仅使用mingw或cygwin编译器环境来完成。

或者:

  1. 使用不同版本的编译器编译armadillo库和后续Rcpp代码是否有问题? (Rtools-3.1有gcc版本4.6.3,MinGW有gcc版本4.8.1。)

  2. 是否有一种干净的方法只用Rtools集合编译犰狳?

  3. (Win7 x64,R-3.1.0,cygwin gcc 4.8.2,rtools 3.1 with gcc 4.6.3。)

1 个答案:

答案 0 :(得分:3)

RcppArmadillo发布了自己的犰狳副本以避免这个问题。由于RcppArmadillpo来自R,它可以依赖R(和R' s配置)获得LAPACK,BLAS等pp。我们不需要运行configure来使用来自R的Armadillo,所以我们不要#39; t。

RcppArmadillo安装通常的R CMD INSTALL ...方式;这在每次发布之前都经过测试,并且可靠地运行。

正如你所说"你的最终目标是使用Rcpp和RcppArmadillo" ,你实际上是在R CMD INSTALL ...完成的。您可以从源代码复制该步骤,并测试该包 - 所有应该"只是工作"。

要记住的另一件事是"写R扩展"和" R安装和管理"手册不得不说你的编译器。就R而言,你的g ++ 4.8。*不存在。只有Rtools版本很重要,否则你很快就会进入非标准土地。