编译器想要包含 R.h 头文件。这些头文件随 R 一起安装,因此显然,包含文件位于 R 安装目录中。
但是在尝试安装包时,编译器正在查看错误的路径(尽管我在环境变量中添加了路径):
g++ -std=gnu++17 -I"/include" -DNDEBUG -I'~/R/win-library/3.6/sp/include' -I"C:/rtools43/x86_64-w64-mingw32.static.posix/include" -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c dummy.cc -o dummy.o
gcc -I"/include" -DNDEBUG -I'~/R/win-library/3.6/sp/include' -I"C:/rtools43/x86_64-w64-mingw32.static.posix/include" -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c init.c -o init.o
init.c:1:10: fatal error: R.h: No such file or directory
1 | #include <R.h>
| ^~~~~
compilation terminated.
有什么方法可以让编译器查看我的环境变量中指定的包含路径吗?
/s/ 是 rgeos 包的依赖项:
install.packages("~/R/win-library/3.6/rgeos_0.6-4.tar.gz", repos = NULL, type = "source")
我必须将 R 标头从 R 安装目录传输到 /sp/,以便编译器可以找到它们。我不应该这样做...
原来确实是环境变量和安装系统混乱。 这是我所做的,希望对某人有帮助:
R_HOME C:\Program Files\R\R-4.3.1 (it was pointing to old 3.6.2 version
R_LIBS_USER C:\Users\Your-USERNAME\Documents\R\win-library\4.3 (was pointing to 3.6
注意: 以上条目不在路径下,这可能会跳过您。 即使您的路径指向正确,这也会影响 RStudio。 不幸的是,您的程序编译器不会报告此问题。它可能会向您显示正确的路径,但这并不意味着它没有被引用重定向到另一个路径。>
C: tools43\usr 位于(而不仅仅是 C: 工具43
Sys.getenv("HOME")
添加:
PATH="${RTOOLS43_HOME}\usr\bin;${PATH}"
并保存。
重新启动系统。如果 RTOOLS43_HOME 条目未显示在环境变量路径上,只需显式添加它:
RTOOLS43_HOME C:\rtools43
在 Rstudio 上,在工具/安装包/安装到库下:
应将上面的 R_LIBS_USER 值作为条目。