这两天在家养病,总想清爽地在Win7 x64上重新编译一下R+openblas+Rstudio。
(在Win7 x64上用openblas替换Rblas.dll,原来只能启动Rconsole,现在Rstudio可视化环境又可以用了)
方法一:
1 Mingw64环境的搭建
老外的文档很给力http://www.kineticsystem.org/?q=node/19
2 libiconv的编译
为了弄一套libiconv x64版本,还是下载libiconv-1.14.tar.gz编译为好,之前装的Mingw64一直有问题,连libiconv都报一堆错误。
3 openblas的编译
github上下载0.29正式版
make
make install
3 编译 R-3.0.3报错及readline编译失败
遇到挫折了,编译R-3.0.3提示没readline,mingw是最小集合,只能下载readline-6.3.tar.gz,编译时
signals.c: In function '_rl_handle_signal':
signals.c:219:10: error: 'SIGHUP' undeclared (first use in this function)
case SIGHUP:
^
signals.c:219:10: note: each undeclared identifier is reported only once for each function it appears in
signals.c: In function 'rl_set_signals':
signals.c:429:32: error: 'SIGHUP' undeclared (first use in this function)
rl_maybe_set_sighandler (SIGHUP, rl_signal_handler, &old_hup);
^
signals.c: In function 'rl_clear_signals':
signals.c:494:36: error: 'SIGHUP' undeclared (first use in this function)
rl_maybe_restore_sighandler (SIGHUP, &old_hup);
^
make: *** [signals.o] Error 1
方法二:试了一下TDM GCC w64
与MSYS集成有点麻烦
方法三:MSYS2(严重推荐)
各种开源东东的版本很新,而且源来自github,速度比国内访问受限的sourceforge快许多。
像ncurses、readline,不愿意重新编译的,可以直接下载(ncurses是编译readline所需,readline是编译R所需)
pacman -S mingw-w64-x86_64-ncurses
pacman -S mingw-w64-x86_64-readline
openblas(git新版本)和lapack(3.50)也可以下载现成的
pacman -S mingw-w64-x86_64-OpenBLAS-git
pacman -S mingw-w64-x86_64-lapack
编译R的Makefile构造命令调整一下,X就算了
./configure --enable-R-shlib --with-blas="-lopenblas" --with-lapack="-llapack" --with-x=no
如同在Linux上编译一样清爽。