VSCode中make clean命令执行失败的原因排查
问题原因及解决方案
问题核心原因
你遇到的make clean报错,本质是Windows环境下GNU Make的默认执行shell与你手动执行命令的shell不一致:
- 你手动执行
rm能成功,说明当前VSCode终端用的是支持POSIX命令的shell(比如Git Bash、WSL Bash或MSYS2 shell); - 但GNU Make默认会调用Windows原生的CMD shell,而CMD中没有
rm这个命令,因此报错提示找不到指定文件(实际是找不到rm命令)。
解决方法
方法一:替换为Windows原生删除命令
修改Makefile里的clean目标,用CMD支持的del命令替代rm:
clean : del /f /q $(EXEC) $(OBJ)
参数说明:
/f:强制删除只读文件/q:静默删除,不弹出确认提示
方法二:指定Makefile使用bash shell执行命令
在Makefile的最开头添加一行,强制Makefile使用bash执行所有命令(前提是你的系统已安装bash并添加到系统PATH,比如Git Bash):
SHELL := bash CC = gcc # ... 其余Makefile内容不变
方法三:确保终端环境一致性
确认VSCode终端默认使用的是你手动执行rm的那个shell(比如Git Bash),运行make clean时保持在该环境下执行。
内容的提问来源于stack exchange,提问作者Sajana Gunathilake
相关产品推荐
相关产品推荐

