Ошибка установки *исходного* пакета 'Rcpp'. R указывает/ищет g++ не в той папке

В 64-разрядной версии Windows 10 для образовательных учреждений я использую R версии 3.6.0 с Rtools 3.5.0 в RStudio версии 1.2.1335. Я получаю следующую ошибку, когда пытаюсь установить devtools::install_github("RcppCore/Rcpp")

> devtools::install_github("RcppCore/Rcpp")
Downloading GitHub repo RcppCore/Rcpp@master
√  checking for file 'C:\Users\mat\AppData\Local\Temp\RtmpCSoh75\remotesb542b002bf2\RcppCore-Rcpp-6062d56/DESCRIPTION' (856ms)
-  preparing 'Rcpp': (5.8s)
√  checking DESCRIPTION meta-information
-  cleaning src
-  checking for LF line-endings in source and make files and shell scripts (822ms)
-  checking for empty or unneeded directories (4.8s)
-  building 'Rcpp_1.0.1.3.tar.gz' (389ms)
   Warning: file 'Rcpp/cleanup' did not have execute permissions: corrected

Installing package into ‘C:/Users/mat/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
* installing *source* package 'Rcpp' ...
** using staged installation
** libs

*** arch - i386
C:/Rtools/bin/g++  -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -I../inst/include/         -O2 -Wall  -mtune=generic -c api.cpp -o api.o
sh: C:/Rtools/bin/g++: No such file or directory
make: *** [C:/PROGRA~1/R/R-36~1.0/etc/i386/Makeconf:215: api.o] Error 127
ERROR: compilation failed for package 'Rcpp'
* removing 'C:/Users/mat/Documents/R/win-library/3.6/Rcpp'
* restoring previous 'C:/Users/mat/Documents/R/win-library/3.6/Rcpp'

Чтобы воспроизвести этот код:

>install.packages("devtools")
>library("devtools")
>options(buildtools.check = NULL)
>install.packages("Rcpp", dep = TRUE)
>devtools::install_github("RcppCore/Rcpp")

Мой системный путь начинается так:

>Sys.getenv()['PATH']
PATH                           
        C:\Program 
Files\R\R-3.6.0\bin\x64;C:\Rtools\bin;C:\Rtools\mingw_32\bin;C:\Rtools\mingw_64\bin;

и между программой и файлами есть пробел

Как администратор я изменил Makeconf через Блокнот как в 32-битных, так и в 64-битных папках на: BINPREF ?= D:/Rtools/mingw_32/bin/ и BINPREF ?= D:/Rtools/mingw_64/bin/

Я попробовал эту ссылку, чтобы исправить файл Makeconf: сообщение об ошибке g++ не найдено

Для проблем с компиляцией Rcpp эта ссылка показалась полезной: Невозможно скомпилировать из исходного кода с Rcpp в Windows 7

Это как-то связано с комментированием тегов rpp или изменением некоторых переменных в Makevars или Makeconf? Если нет, то почему код devtools::install_github("RcppCore/Rcpp") ищет g++ не в той корзине? Он ищет его в

C:/Rtools/bin/г++

как вы видете.

После копирования и вставки g++.exe в > C:/Rtools/bin/g++ я получаю еще одну ошибку:

>devtools::install_github("RcppCore/Rcpp")
    Downloading GitHub repo RcppCore/Rcpp@master
    √  checking for file 'C:\Users\mat\AppData\Local\Temp\RtmpCSoh75\remotesb54764929a4\RcppCore-Rcpp-6062d56/DESCRIPTION' (916ms)
    -  preparing 'Rcpp': (5.7s)
    √  checking DESCRIPTION meta-information ... 
    -  cleaning src
    -  checking for LF line-endings in source and make files and shell scripts (986ms)
    -  checking for empty or unneeded directories (3.8s)
    -  building 'Rcpp_1.0.1.3.tar.gz' (352ms)
       Warning: file 'Rcpp/cleanup' did not have execute permissions: corrected

    Installing package into ‘C:/Users/mat/Documents/R/win-library/3.6’
    (as ‘lib’ is unspecified)
    * installing *source* package 'Rcpp' ...
    ** using staged installation
    ** libs

    *** arch - i386
    C:/Rtools/bin/g++  -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -I../inst/include/         -O2 -Wall  -mtune=generic -c api.cpp -o api.o
    Cannot create temporary file in C:\Users\mat\AppData\Local\Temp\: Permission denied
    make: *** [C:/PROGRA~1/R/R-36~1.0/etc/i386/Makeconf:215: api.o] Error 3
    ERROR: compilation failed for package 'Rcpp'
    * removing 'C:/Users/mat/Documents/R/win-library/3.6/Rcpp'
    * restoring previous 'C:/Users/mat/Documents/R/win-library/3.6/Rcpp'

Я не думаю, что копирование g++.exe - правильный способ сделать это. Тем не менее, это стоило попробовать и, возможно, привело к правильному ответу. Пожалуйста помоги. (Если вы запускаете devtools::install_github("RcppCore/Rcpp") последовательно, вам нужно удалить папку блокировки (00LOCK-Rcpp) в ~/R/win-library/3.6, чтобы избежать ERROR: failed to lock directory) Спасибо!


person user3553260    schedule 16.06.2019    source источник
comment
Здесь нет ошибки Rcpp, поэтому я планирую удалить тег. Требования к месту установки Rtools в Windows хорошо документированы, но, похоже, вы им просто не следовали. Т.е. прочитайте это руководство и обратите внимание на пункт 8. То же самое говорится и в ряде других мест. (И да, это глупо, что Rtools не делает этого по умолчанию, но мы с вами мало что можем с этим поделать....)   -  person Dirk Eddelbuettel    schedule 16.06.2019
comment
Пожалуйста, отбросьте отношение. Нет необходимости удалять тег, если он актуален. Это не тег «ошибка», это просто тег. Я уже прошел всю эту ссылку. У меня в баках порядок. Вы знаете, в чем проблема?   -  person user3553260    schedule 16.06.2019
comment
Ты не понимаешь. Rcpp не имеет отношения к тому, где установлен Rtools. Таким образом, это просто не проблема Rcpp. Это все между вами, R и Rtools. Это просто вызывает R CMD INSTALL ... и друзей, и Rcpp не имеет никакого влияния на выбранные пути. Также см. часто задаваемые вопросы по Rcpp. И, пожалуйста, успокойся. Я делаю это бесплатно в свободное время - если вы предпочитаете, чтобы я не помогал вам, мне это легко сделать.   -  person Dirk Eddelbuettel    schedule 16.06.2019
comment
Вы пытались изменить свой PATH, чтобы включить каталог bin Rtool?   -  person Ralf Stubner    schedule 16.06.2019
comment
Можете ли вы создать файл в указанном здесь каталоге: Cannot create temporary file in C:\Users\mat\AppData\Local\Temp\: Permission denied?   -  person Dirk Eddelbuettel    schedule 16.06.2019
comment
Также: загрузите свой пакет в win-builder, чтобы убедиться, что это не тот пакет. Затем выясните, как/где отличается ваша локальная установка.   -  person Dirk Eddelbuettel    schedule 16.06.2019
comment
@DirkEddelbuettel да, я могу создать новый файл в этой папке. Раньше я пытался отключить «Только для чтения», но это не кажется жизнеспособным. Я попробую win-builder, но сначала мне нужно попробовать ручной способ. Тем не менее, я следил за обычной установкой всех.   -  person user3553260    schedule 16.06.2019
comment
@DirkEddelbuettel Я получаю следующее: > install.Rtools() Нет необходимости устанавливать Rtools — у вас установлена ​​соответствующая версия Rtools, но я уже удалил ее, поэтому я в замешательстве. Rcpp::evalCpp("2+2") Предупреждающее сообщение: В системе (cmd): 'make' не найден. Затем он начал загружать Rtoolsbuild на диск C после окна подсказки.   -  person user3553260    schedule 16.06.2019
comment
Rcpp::evalCpp("2+2") C:/RBuildTools/3.5/mingw_64/bin/g++ -IC:/PROGRA~1/R/R-36~1.0/include -DNDEBUG -IC:/Users/mat/Documents/R/win-library/3.6/ Rcpp/include -IC:/Users/mat/AppData/Local/Temp/Rtmp8oGA6i/sourceCpp-x86_64-w64-mingw32-1.0.1 -O2 -Wall -mtune=generic -c file26f01b2c3aae.cpp -o file26f01b2c3aae.o Невозможно создать временный файл в C:\Users\mat\AppData\Local\Temp\: Отказано в доступе make: *** [C:/PROGRA~1/R/R-36~1.0/etc/x64/Makeconf:215: file26f01b2c3aae. o] Ошибка 3 Ошибка в sourceCpp(код = код, env = env, перестроить = перестроить, cacheDir = cacheDir,: Ошибка 1.   -  person user3553260    schedule 16.06.2019
comment
Вот моя точка зрения: если Rcpp::eval("2+2") не удастся, все будет на вашей совести. Следовательно, нет проблем с Rcpp. Сделайте шаг назад, выпейте чашечку кофе, просмотрите и получите доступную помощь по Rtools, которую R Core предоставляет всем нам, и мы просто должны принять любые причуды.   -  person Dirk Eddelbuettel    schedule 16.06.2019
comment
@DirkEddelbuettel до сих пор не считает, что тег нужно снимать. Это связано с R и C++. Я думаю, что это связано с какой-то конфигурацией доступа или с обновлением библиотек C++ от Microsoft. Ошибка находится в файле 26f01b2c3aae.cpp. Он говорит, что не может получить доступ, но я могу создать новый файл в этом каталоге. Возможно, придется попробовать другой компьютер.   -  person user3553260    schedule 16.06.2019
comment
Вы все еще ошибаетесь. Несоответствие предоставленным задокументированным требованиям — опять же, Rcpp не может установить или управлять Rtools — не является ошибкой в ​​пакете, даже если этот пакет используется, когда возникает ошибка. Вы застряли из-за проблемы с установкой R в Windows и столкнулись с недостатком Rcpp. Следовательно, нет тега Rcpp.   -  person Dirk Eddelbuettel    schedule 16.06.2019