Установить компилятор C (CC) в R для Windows - PullRequest
0 голосов
/ 03 июня 2019

При обновлении до RStudio 1.2 мне пришлось переключиться с 32-битной на 64-битную версию R. Однако команда компилятора R C по-прежнему ищет 32-разрядную версию MinGW, что означает, что я не могу скомпилировать пакеты для 64-разрядной установки.

Я пытался удалить и переустановить RTools 3.5 и R 3.6.0, а переменные окружения PATH и BINPREF указывают на соответствующие 64-битные папки. Тем не менее, R все еще ищет 32-битный компилятор C при компиляции пакетов, содержащих исходный код C: R CMD config CC возвращает C:/Rtools/mingw_32/bin/gcc, но я не могу понять, как изменить это значение на mingw_64.

В результате, когда я запускаю devtools::install() (или check, load_all и т. Д.), Я сталкиваюсь с ошибкой:

* installing *source* package 'MYPACKAGE' ...
** using staged installation
** libs
sh: line 6: C:/Rtools/mingw_32/bin/nm: No such file or directory
C:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o MYPACKAGE.dll tmp.def [...] -LC:/PROGRA~1/R/R-36~1.0/bin/x64 -lR
sh: line 8: C:/Rtools/mingw_32/bin/g++: No such file or directory
no DLL was created
ERROR: compilation failed for package 'MYPACKAGE'

RStudio выдает диалоговое окно с предложением установить RTools, но продолжение установки не помогает: путь CC не изменяется.

1 Ответ

1 голос
/ 03 июня 2019

Значение BINPREF, указанное в C:\Program files\R\R-3.6.0\etc\x64\Makeconf, перезаписывалось другим значением, которое я ранее указывал (вручную, как /mingw_32/, а не как предпочтительное /mingw_$(WIN)/) в C:\Users\MYUSERNAME\Documents\.R\Makevars, что изКонечно, выжил после удаления R. Обновление этого файла для указания на 64-битный путь решило проблему.

Спасибо Duckmayr за то, что привел меня к ответу.

...