Makefile在windows上干净

时间:2011-06-03 02:20:18

标签: windows makefile

我正在学习如何使用makefiles并且我制作了以下makefile(我使用visual studio命令行编译器在Windows上)

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

3 个答案:

答案 0 :(得分:2)

你有的makefile很好,“nmake clean”正确调用命令。

您正在使用的版本无效。您可以选择使用Visual Studio或Windows SDK附带的nmake.exe实用程序,或者获取适用的make版本。

答案 1 :(得分:2)

这是男性的一个错误,由PATH变量中的括号引起。见http://okolovich.info/interruptexception-caught-with-code-0xc00000fd/

答案 2 :(得分:1)

最近,我遇到了同样的问题。在我的情况下,似乎逃避星号(即rm -rf \*.obj)解决了这个问题。虽然我的make版本有点新:GNU Make 3.81