В 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
) Спасибо!
R CMD INSTALL ...
и друзей, и Rcpp не имеет никакого влияния на выбранные пути. Также см. часто задаваемые вопросы по Rcpp. И, пожалуйста, успокойся. Я делаю это бесплатно в свободное время - если вы предпочитаете, чтобы я не помогал вам, мне это легко сделать. - person Dirk Eddelbuettel   schedule 16.06.2019Cannot create temporary file in C:\Users\mat\AppData\Local\Temp\: Permission denied
? - person Dirk Eddelbuettel   schedule 16.06.2019> install.Rtools()
Нет необходимости устанавливать Rtools — у вас установлена соответствующая версия Rtools, но я уже удалил ее, поэтому я в замешательстве.Rcpp::evalCpp("2+2")
Предупреждающее сообщение: В системе (cmd): 'make' не найден. Затем он начал загружать Rtoolsbuild на диск C после окна подсказки. - person user3553260   schedule 16.06.2019Rcpp::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.2019Rcpp::eval("2+2")
не удастся, все будет на вашей совести. Следовательно, нет проблем с Rcpp. Сделайте шаг назад, выпейте чашечку кофе, просмотрите и получите доступную помощь по Rtools, которую R Core предоставляет всем нам, и мы просто должны принять любые причуды. - person Dirk Eddelbuettel   schedule 16.06.2019