#r #rcpp
#r #rcpp
Вопрос:
Я просто пытаюсь начать работу с Rcpp, и я продолжаю сталкиваться с этой ошибкой независимо от того, что я делаю.
> library("Rcpp")
> evalCpp("2 2")
"C:/rtools40/mingw64/bin/"g -std=gnu 11 -I"C:/PROGRA~1/R/R-40~1.2/include" -DNDEBUG -I"//ad.uws.edu.au/dfshare/HomesBLK90946112/My Documents/R/win-library/4.0/Rcpp/include" -I"C:/Users/90946112/AppData/Local/Temp/Rtmp0Q7m7J/sourceCpp-x86_64-w64-mingw32-1.0.5" -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c file45bc2c9438a5.cpp -o file45bc2c9438a5.o
file45bc2c9438a5.cpp:1:10: fatal error: Rcpp.h: No such file or directory
#include <Rcpp.h>
^~~~~~~~
compilation terminated.
make: *** [C:/PROGRA~1/R/R-40~1.2/etc/x64/Makeconf:229: file45bc2c9438a5.o] Error 1
Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir, :
Error 1 occurred building shared library.
Чтобы убедиться, что все настроено правильно, я выполнил следующие проверки:
> find_rtools()
[1] TRUE
> find.package('Rcpp')
[1] "\\ad.uws.edu.au/dfshare/HomesBLK$/90946112/My Documents/R/win-library/4.0/Rcpp"
и
> find_rtools()
[1] TRUE
> find.package('Rcpp')
[1] "\\ad.uws.edu.au/dfshare/HomesBLK$/90946112/My Documents/R/win-library/4.0/Rcpp"
> Sys.getenv("PATH")
[1] "C:\rtools40\usr\bin;C:\Program Files\R\R-4.0.2\bin\x64;C:\Rtools\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Users\90946112\AppData\Local\Microsoft\WindowsApps;"
> has_devel()
Your system is ready to build packages!
Я видел здесь так много вопросов о похожих проблемах, но ни одного для Rtools40, у которого другой путь к файлу, и ни один не помог. Я пытался использовать более старую версию R и Rtools. Я также удалил и переустановил оба.
Пожалуйста, помогите!
Комментарии:
1. Вы компилируете с
-I"//ad.uws.edu.au/dfshare/HomesBLK90946112/My Documents/R/win-library/4.0/Rcpp/include"
, тогда как файл заголовка находится в"\\ad.uws.edu.au/dfshare/HomesBLK$/90946112/My Documents/R/win-library/4.0/Rcpp"
. Это не совсем одно и то же (посмотрите вокруг знака $). Если это не было искажено во время копирования-вставки его сюда, это вполне может быть источником вашей проблемы.2. О, хорошо! Можете ли вы помочь мне исправить это? Я не помню, чтобы что-либо копировалось для назначения этих путей — я полагаю, что они были обнаружены автоматически.
3. Предполагая, что это действительно проблема, и инструмент, который вы используете для сборки, не поддерживает ‘$’. Тогда у вас есть возможность исправить инструмент (возможно, нет), использовать другой инструмент или переместить библиотеку куда-нибудь еще, у которого нет ‘$’ в пути. Не знаю, какой вариант наиболее практичен для вас.
4. Хорошо, спасибо за вашу помощь!
Ответ №1:
Отсортировано! Спасибо @dratenik за помощь.
Я удалил пакет Rcpp, запустил RStudio от имени администратора, переустановил Rcpp в библиотеке, в которой не было специальных символов, и теперь он работает нормально.