1) https://cran.r-project.org/bin/windows/base/howto-R-devel.html # the canonical guide for compiling R-devel on Windows using Rtools
2) https://www.r-bloggers.com/2022/01/building-r-4-2-for-windows-with-openblas/ # adapt parts of this guide to get openblas with R
按照上述 2 个链接,以下是一些基本步骤:
1.安装Rtools43
(i) Download https://cran.r-project.org/bin/windows/Rtools/rtools43/files/rtools43-5493-5475.exe; (ii) 将其安装到默认位置(即C:\rtools43
)
2.安装MikTeX和Inno Setup
需要 MikTeX(带有基本包和 inconsolata)来构建包插图和文档。构建 R 安装程序需要 Inno Setup。
3. 一般设置
-
运行 Msys2 shell (c:/rtools43/msys2.exe
)
-
建立一个文件夹来存储源文件:mkdir /c/R-devel
-
更新Msys2:pacman -Syuu
它可能首先只更新核心内容,然后要求您关闭终端。您应该按照说明进行操作,然后重新启动 Msys2 shell 并重新运行pacman -Syuu
第二次完全更新所有组件
-
安装 wget 和 subversion:pacman -Sy wget subversion
-
将工作目录更改为步骤 3.2 中创建的文件夹:cd /c/R-devel
-
从以下位置获取最新的 Tcl/Tk 包here https://cran.r-project.org/bin/windows/Rtools/rtools43/files/,一个名为的文件,例如tcltk-5493-5412.zip
:
TCLBUNDLE=tcltk-5493-5412.zip
wget https://cran.r-project.org/bin/windows/Rtools/rtools43/files/$TCLBUNDLE
-
获取最新的 R 版本 (R-devel),并解压 Tcl:
svn checkout https://svn.r-project.org/R/trunk
cd trunk
unzip ../$TCLBUNDLE
4. 添加一个MkRules.local
in /c/R-devel/trunk/src/gnuwin32/
您可以使用 Notepad++ 创建一个新的MkRules.local
包含以下内容的文件(edit ISDIR = ...
到步骤 2 中的相应目录):
USE_ATLAS = YES
EOPTS = -march=native -pipe
QPDF = /usr
ISDIR = C:/Program Files (x86)/Inno Setup 6
5. 调整/c/R-devel/trunk/src/extra/blas/Makefile.win
您可以使用Notepad++更改行-L../../../$(IMPDIR) -lR -L"$(ATLAS_PATH)" -lf77blas -latlas
to -L../../../$(IMPDIR) -lR -fopenmp -lopenblas
- -L../../../$(IMPDIR) -lR -L"$(ATLAS_PATH)" -lf77blas -latlas
+ -L../../../$(IMPDIR) -lR -fopenmp -lopenblas
6. 编译R
-
运行 Msys2 shell 并更改到适当的工作目录:cd /c/R-devel/trunk/src/gnuwin32/
-
设置环境变量如下(在以下命令中更新 MiKTeX 安装目录):
export PATH=/x86_64-w64-mingw32.static.posix/bin:$PATH
export PATH=/c/Users/xxxxxxxx/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:$PATH
export TAR="/usr/bin/tar"
export TAR_OPTIONS="--force-local"
-
测试工具是否可用:which make gcc pdflatex tar
-
构建 R 安装程序:
make rsync-recommended
make distribution
-
安装程序可在以下位置获取:/c/R-devel/trunk/src/gnuwin32/installer/R-devel-win.exe
7. 测试我们的 R 编译是否使用 OpenBLAS
以下R代码 https://stackoverflow.com/a/42854705/9454926与从 CRAN 下载的 Windows 版标准 R 相比,运行速度应该快得多:
m <- 10000
n <- 2000
A <- matrix (runif (m*n),m,n)
system.time (S <- svd (A,nu=0,nv=0))
user system elapsed
4.02 0.65 7.83