我遇到了以下问题:每次我想通过renv特定的命令安装包“class”,例如:renv::restore()或renv::install(“class@7.3-20”)时,我收到错误消息。但是,如果我运行install.packages(“class”,version=“7.3-20”),一切正常。
我从renv诊断开始:
> renv::diagnostics()
Diagnostics Report [renv 0.17.3]
================================
# Session Info =======================
R version 4.3.0 (2023-04-21 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)
Matrix products: default
用renv安装“class”会给出以下消息
> renv::install("class@7.3-20")
Consider removing these folders from your R library.
Retrieving 'https://cran.rstudio.com/src/contrib/Archive/class/class_7.3-20.tar.gz' ...
OK [file is up to date]
Installing class [7.3-20] ...
FAILED
Error installing package 'class':
=================================
* installing *source* package 'class' ...
** Paket 'class' erfolgreich entpackt und MD5 Summen überprüft
** using staged installation
** libs
using C compiler: 'gcc.exe (GCC) 12.2.0'
gcc -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
class.c:31:9: error: unknown type name 'Sint'; did you mean 'int'?
31 | VR_knn1(Sint *pntr, Sint *pnte, Sint *p, double *train, Sint *class,
| ^~~~
| int
.
.
.
make: *** [C:/PROGRA~1/R/R-43~1.0/etc/x64/Makeconf:265: class.o] Error 1
ERROR: compilation failed for package 'class'
另一方面,安装类install.packages(“class”,version=“7.3-20”)没有问题。Rtools在renv包之外安装并工作正常。是否renv不支持当前的Rtools版本(43)?他们在github上仍然有一个开放的问题来修复对rtools 43(https://github.com/rstudio/renv/issues/1214)的支持。
感谢您的任何建议和帮助!
1条答案
按热度按时间bzzcjhmw1#
这与Rtools没有任何关系,这是一个与你正在尝试做的事情有关的问题。
install.packages()
函数将忽略version
参数,因此您将获得最新版本7.3-22。版本7.3-20与R 4.3.x不兼容,因为Sint
和相关的定义已经被删除。因此,如果你想安装7.3-20,你需要使用旧版本的R。