Makefile在Windows上清理

我正在学习使用makefiles现在我做了下面的makefile(我在windows上使用visual studio命令行编译器)

CC = cl CFLAG = /EHsc test_database.exe: composer.obj database.obj test_database.obj $(CC) test_database.obj database.obj composer.obj test_database.obj: test_database.cpp $(CC) $(CFLAGS) -c test_database.cpp composer.obj: composer.cpp composer.h $(CC) $(CFLAGS) -c composer.cpp database.obj: database.cpp database.h $(CC) $(CFLAGS) -c database.cpp .PHONY : clean clean: rm -f *.obj 

每当我调用make clean我得到make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4ff283)我不太确定我做错了什么。 我可以使用make来编译程序没有问题我只是当我瞄准干净的时候得到错误。 rm存在于我的机器上,随时都在使用它。 我已经尝试了与DEL以及一个相同的错误。 任何帮助指出我在正确的方向将不胜感激。

制作版本是GNU Make 3.80

makefile文件很好,“nmake clean”正确地调用了这个命令。

使您正在使用的版本不起作用。 您的选择是使用Visual Studio或Windows SDK附带的nmake.exe实用程序,或者获取可用的make版本。

这是make中的一个bug,由PATH变量中的缺陷引起。 见http://okolovich.info/interruptexception-caught-with-code-0xc00000fd/

最近,我面临同样的问题。 在我看来,转义星号(即rm -rf \*.obj )解决了这个问题。 虽然我的制作版本有点新: GNU Make 3.81