R CMD检查不在Rtools目录中查找gcc

时间:2017-11-02 13:31:38

标签: r windows gcc packages

R一直安装软件包很好,但突然间 - 我想不出我修改或卸载的任何相关内容 -  我在命令提示符中运行R CMD check或在R控制台中运行devtools::check()时找不到gcc;它传达了以下错误:

* installing *source* package 'PkgName' ...
** libs
C:/MinGW/bin/gcc  -I"C:/PROGRA~1/R/R-34~1.2/include" -DNDEBUG     -I"d:/Compiler/gcc-4.9.3/local330/include"     -O3 -Wall  -std=gnu99 -mtune=core2 -c PkgName-init.c -o PkgName-init.o
C:/MinGW/bin/gcc: not found

我希望R在C:\ Rtools-3.4 \ mingw_32 \ bin中找到gcc,这是系统PATH中指定的位置; strsplit(Sys.getenv('PATH'), ';')给出了

[...]
[4] "c:\\Rtools-3.4\\bin"                                                                                
[5] "c:\\Rtools-3.4\\mingw_32\\bin"                                                                      
[7] "C:\\Program Files\\R\\R-3.4.2\\bin\\i386"                                                           
[8] "C:\\Program Files\\R\\R-3.4.2\\bin"                                                                 
[9] "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64\\"                                                  
[...]

如何告诉R不要查看不存在的目录C:\ MinGW,而是跟随PATH?

我不想在那里安装MinGW的第二个副本,因为这会导致其他问题。

1 个答案:

答案 0 :(得分:0)

在遇到Building R Packages using Alternate GCC并进行了一些试验和错误后,我能够通过在$ RPATH / etc / i386 / Makeconf中修改我的Makeconf文件来解决这个问题

gcc可执行文件的位置由CC = $(BINPREF)gcc $(M_ARCH)

提供

BINPREF设置为BINPREF ?= c:/Rtools/mingw_32/bin/,而我的Rtools位于c:/Rtools-3.4/mingw_32/bin/。 据推测,R - 无法在那里找到gcc - 默认查看C:\MinGW。当我将BINPREF行更改为指向我的Rtools安装时,问题已解决,无法检查我自己的包。

当从源代码安装其他软件包(phangorn)时,我不得不将?=替换为=行中的BINPREF

我还不完全清楚是什么原因导致这个问题出现,因为我不记得曾经修改过这个文件......