【问题标题】:R CMD check not looking for gcc in Rtools directoryR CMD 检查不在 Rtools 目录中寻找 gcc
【发布时间】:2018-04-15 01:19:30
【问题描述】:

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 副本,因为这会导致其他问题。

【问题讨论】:

    标签: r windows gcc packages


    【解决方案1】:

    R 使用BINPREF 变量来定位可执行文件: gcc 可执行文件的位置由CC = $(BINPREF)gcc $(M_ARCH) 给出

    在我的例子中,BINPREF 是由 C:/Users/MYUSERNAME/Documents/.R/Makevars 设置的。删除此文件的内容会删除不正确的位置。

    检查文件$RPATH/etc/i386/Makeconf 也是值得的,每次新安装 R 时都会重新创建该文件。注意该行 BINPREF ?= c:/Rtools/mingw_32/bin/,它(通过?= 运算符)将设置BINPREF 的值(如果尚未设置),就像在上面提到的Makevars 文件中一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2020-12-22
      • 2013-05-24
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      相关资源
      最近更新 更多