Windows10下R 4.3.0安装grf 0.10.2报错non zero exit status如何解决?
解决Windows10下R 4.3.0安装grf 0.10.2编译报错问题
问题根源
grf 0.10.2的C源码文件src/forest/ForestOptions.cpp中使用了std::runtime_error,但未包含对应的<stdexcept>头文件。R 4.3.0配套的Rtools43编译器对C标准的检查更严格,导致编译时抛出'runtime_error' is not a member of 'std'错误。
解决方法
方法一:手动修改源码后本地安装
- 下载
grf_0.10.2.tar.gz包到本地文件夹 - 解压该包,找到
src/forest/ForestOptions.cpp文件 - 在文件开头的
#include区域添加一行:#include <stdexcept> - 保存修改后的文件,重新将整个解压后的文件夹打包为tar.gz(或直接保留文件夹)
- 在R中执行安装命令:
# 若用打包后的tar.gz install.packages("你的本地路径/grf_0.10.2.tar.gz", repos = NULL, type = "source") # 若用修改后的文件夹 library(devtools) install_local("你的本地路径/grf_0.10.2")
方法二:指定C++编译标准
在安装前设置环境变量,强制编译器使用较旧的C++标准(适配grf 0.10.2的代码):
# 设置编译选项 Sys.setenv(CXXFLAGS = "-std=c++11") # 用原方法安装 install.packages("https://cran.r-project.org/src/contrib/Archive/grf/grf_0.10.2.tar.gz", repos = NULL, type = "source") # 或者用devtools library(devtools) install_version("grf", "0.10.2")
额外检查
确保Rtools43已正确配置:
# 写入环境变量配置,执行后重启R writeLines('PATH="${RTOOLS43_HOME}/usr/bin;${PATH}"', con = "~/.Renviron")
内容的提问来源于stack exchange,提问作者HeinzEllman
相关产品推荐
相关产品推荐

