Windows下mingw32-make执行clean目标报错的原因及解决咨询
解决Windows下mingw32-make执行clean目标时的"rm命令找不到"错误
错误原因
Windows系统默认没有Unix/Linux环境下的rm删除命令,mingw32-make执行clean目标时尝试调用rm,但系统找不到该命令,所以抛出CreateProcess(NULL, rm ...) failed的错误——哪怕你修改了要删除的文件名,只要命令还是rm,这个错误就会持续出现。
解决方法
有两种可行方案:
方案1:改用Windows原生del命令
直接替换Makefile中的rm为Windows自带的del命令,同时明确指定.exe后缀(Windows下g++生成的可执行文件默认带.exe):
clean: del /q /f $(EXE).exe $(OBJ)
/q:静默删除,无需确认/f:强制删除只读文件,避免因文件权限问题删除失败
方案2:让系统找到mingw的rm命令
如果你习惯用rm,可以把mingw安装目录下的bin文件夹(比如C:\MinGW\bin)添加到系统环境变量PATH中,添加完成后重启VS Code或终端,让PATH生效。之后修改clean目标为:
clean: rm -f $(EXE).exe $(OBJ)
-f参数用于强制删除,避免因文件不存在而报错。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

