用Rtools辅助安装基于C、C++、Fortran的源代码R包
主要报错内容如下:
*** arch - i386
"c:/rtools40/mingw32/bin/"g++ -std=gnu++11 -I"D:/R/R-40~1.3/R-40~1.3/include" -DNDEBUG -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c apply.cc -o apply.o
sh: c:/rtools40/mingw32/bin/g++: No such file or directory
make: *** [D:/R/R-40~1.3/R-40~1.3/etc/i386/Makeconf:227: apply.o] Error 127
ERROR: compilation failed for package 'gmp'
* removing 'D:/R/R-4.0.3/R-4.0.3/library/gmp'
下载的程序包在
‘C:\Users\DEII\AppData\Local\Temp\RtmpIv7j4t\downloaded_packages’里
Warning message:
In install.packages("gmp") : 安装程序包‘gmp’时退出狀態的值不是0
解决过程:
我看到这个报错内容的时候一直纠结于最后一句“Warning message:安装程序包‘gmp’时退出狀態的值不是0”,然后google、百度,有人说这是R版本太旧了要升级R版本,但是我用的就是最新的R版本!此外,这只是个警告信息,不很重要。
然后循着报错内容往上看:“ERROR: compilation failed for package 'gmp'”,这个是说包“gmp”安装失败。
继续往上看:“make: *** [D:/R/R-401.3/R-401.3/etc/i386/Makeconf:227: apply.o] Error 127”,这里面也没有看到有用的信息。
Keep going,“sh: c:/rtools40/mingw32/bin/g++: No such file or directory”,是说没有这个文件或者目录!原来是要安装Rtools这个工具!
接下来,按照默认的方式安装Rtools,会把Rtools安装到c:/rtools40/,重新安装R包“gmp”,成功通过!
注意: 用C/C++/Fortran的源代码构建R包需要用到Rtools,否则会报类似本文中的错误。默认情况下,R for Windows安装来自CRAN的预编译“二进制软件包”,则不需要rtools!另外,Rtools的路径要添加到环境变量中才能发挥作用。
参考资料:
Rtools安装、下载、路径设置与官网介绍