Renv 无法编译软件包,但 install.packages() 工作正常

Met*_*tix 3 r rtools renv

我遇到以下问题:每次我想通过 renv 特定命令(例如 renv::restore() 或 renv::install("class@7.3-20"))安装包“class”时,我都会收到一条错误消息。但是,如果我运行 install.packages("class",version="7.3-20") 一切正常。

\n

我从转速诊断开始:

\n
> renv::diagnostics()\nDiagnostics Report [renv 0.17.3]\n================================\n\n# Session Info =======================\nR version 4.3.0 (2023-04-21 ucrt)\nPlatform: x86_64-w64-mingw32/x64 (64-bit)\nRunning under: Windows 10 x64 (build 19045)\n\nMatrix products: default\n
Run Code Online (Sandbox Code Playgroud)\n

使用 renv 安装“class”会给出以下消息

\n
> renv::install("class@7.3-20")\nConsider removing these folders from your R library.\n\nRetrieving \'https://cran.rstudio.com/src/contrib/Archive/class/class_7.3-20.tar.gz\' ...\n    OK [file is up to date]\nInstalling class [7.3-20] ...\n    FAILED\nError installing package \'class\':\n=================================\n\n* installing *source* package \'class\' ...\n** Paket \'class\' erfolgreich entpackt und MD5 Summen \xc3\xbcberpr\xc3\xbcft\n** using staged installation\n** libs\nusing C compiler: \'gcc.exe (GCC) 12.2.0\'\ngcc  -I"C:/PROGRA~1/R/R-43~1.0/include" -DNDEBUG     -I"C:\\Users\\mschleri\\AppData\\Local/R/cache/R/renv/extsoft/include"     -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign  -c class.c -o class.o\nclass.c:31:9: error: unknown type name \'Sint\'; did you mean \'int\'?\n   31 | VR_knn1(Sint *pntr, Sint *pnte, Sint *p, double *train, Sint *class,\n      |         ^~~~\n      |         int\n.\n.\n.\nmake: *** [C:/PROGRA~1/R/R-43~1.0/etc/x64/Makeconf:265: class.o] Error 1\nERROR: compilation failed for package \'class\'\n
Run Code Online (Sandbox Code Playgroud)\n

另一方面,安装 class install.packages("class",version="7.3-20") 则没有问题。Rtools 已安装并在 renv 包之外正常工作。难道renv不支持当前的Rtools版本(43)?他们在 github 上仍然有一个未解决的问题来修复 rtools 43 的支持(https://github.com/rstudio/renv/issues/1214)。

\n

感谢您的任何建议和帮助!

\n

use*_*330 8

这与 Rtools 没有任何关系,这是你想要做的事情的问题。

install.packages()函数将忽略您的version参数,因此您将获得最新版本 7.3-22。版本 7.3-20 与 R 4.3.x 不兼容,因为Sint和 相关定义已被删除。

因此,如果您想安装 7.3-20,则需要使用旧版本的 R。