фатальная ошибка: Rcpp.h: нет такого файла или каталога

#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 в библиотеке, в которой не было специальных символов, и теперь он работает нормально.