Windows下执行make clean命令失败,求助排查Makefile问题
Windows环境下Makefile执行
make clean报错 作为初学者,我编写了一个简单的Makefile,内容如下:
build: gcc -Wall -std=c99 ./src/*.c -o game run: ./game clean: rm game
我可以正常执行make build和make run命令,但执行make clean时出现错误:
PS C:\Users\anton\game> make build gcc -Wall -std=c99 ./src/*.c -o game PS C:\Users\anton\game> make run ./game Game is running... PS C:\Users\anton\game> make clean rm game process_begin: CreateProcess(NULL, rm game, ...) failed. make (e=2): The system cannot find the file specified. make: *** [Makefile:8: clean] Error 2
我已确认MinGW的bin目录已添加到系统PATH变量中,且该路径下无其他bin目录,不清楚问题出在哪里?
问题原因
你在Windows环境下使用了Linux/Unix系统专属的rm命令,Windows默认没有这个命令,导致make无法找到对应可执行文件,从而抛出错误。
解决方法
有两种直接有效的修改方式:
- 方式1:使用MinGW自带的
rm.exe
MinGW的bin目录下实际包含rm.exe,只需在Makefile中明确调用这个可执行文件即可:clean: rm.exe game - 方式2:改用Windows原生删除命令
del
替换为Windows系统自带的删除命令,若想避免文件不存在时的报错,可添加/Q参数实现静默删除:clean: del /Q game
内容的提问来源于stack exchange,提问作者APG_ON
相关产品推荐
相关产品推荐

