Windows安装R包REddyProc时make报错:退出码0xC0000142
解决Windows下安装REddyProc-1.3.3时make检测gcc失败的问题
问题场景
在Windows系统中执行devtools::install('c:/Temp/REddyProc-1.3.3')安装REddyProc-1.3.3时,make工具检测gcc步骤失败,核心报错:
0 [main] make 205 dofork: child -1 - forked process 8576 died unexpectedly, retry 0, exit code 0xC0000142, errno 11 make: *** [C:/PROGRA~1/R/R-44~1.2/share/make/winshlib.mk:39: compilers] Error 127
后续触发R命令执行失败,退出码1。
解决方案
1. 验证Rtools安装与环境配置
- 确保安装对应R版本的Rtools(如R4.4.x需安装Rtools44),安装时务必勾选「Add Rtools to system PATH」选项;若未勾选,手动将Rtools的
mingw64/bin和usr/bin目录添加到系统PATH的最前端。 - 在R中执行
Sys.which("gcc"),若返回空值或非Rtools路径,说明环境配置无效,需重新调整PATH。 - 打开命令提示符(cmd),执行
gcc --version,若无法正常输出版本信息,说明gcc组件存在问题。
2. 修复Rtools的gcc组件
- 错误码
0xC0000142表示程序初始化失败,大概率是gcc依赖的运行库缺失或Rtools安装损坏:- 卸载现有Rtools,关闭杀毒软件后重新下载官方安装包完成安装,避免组件被拦截。
- 手动双击Rtools目录下
mingw64/bin/gcc.exe,若弹出缺失dll的提示,安装对应版本的Microsoft Visual C++ Redistributable运行库。
3. 手动指定R的编译工具路径
在R中运行以下代码(路径需与你的Rtools实际安装目录一致),强制指定编译工具:
Sys.setenv(PATH = paste("C:/rtools44/mingw64/bin", Sys.getenv("PATH"), sep=";")) Sys.setenv(BINPREF = "C:/rtools44/mingw64/bin/")
之后重新执行devtools::install('c:/Temp/REddyProc-1.3.3')。
4. 排查系统环境冲突
- 系统中若存在其他版本的make/gcc(如Git Bash、MinGW等),可能干扰Rtools的调用:
- 在cmd中执行
where make和where gcc,检查输出的第一个路径是否为Rtools目录下的程序。 - 若存在冲突,调整系统PATH顺序,将Rtools相关目录移至最前端。
- 在cmd中执行
5. 备选:尝试预编译二进制包安装
若上述方法无效,优先检查是否可通过预编译二进制包安装:
- 若CRAN提供对应版本的Windows二进制包,直接执行:
install.packages("REddyProc", version = "1.3.3") - 若旧版本无预编译包,可尝试从CRAN归档源安装(仍需编译):
install.packages("https://cran.r-project.org/src/contrib/Archive/REddyProc/REddyProc_1.3.3.tar.gz", repos = NULL, type = "source")
内容的提问来源于stack exchange,提问作者halt9k
相关产品推荐
相关产品推荐

