【发布时间】:2011-06-03 02:20:17
【问题描述】:
我现在正在学习使用 makefile,我制作了以下 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
【问题讨论】:
-
好吧,您似乎正在将 GNU makefile 知识应用于 Nmake,假设您在命令行上使用
make调用 Nmake,而不是为 Windows 构建 GNU make。您在第 2 行有错字(CFLAG应该是CFLAGS),但除此之外,只需删除 Nmake 不支持的 .PHONY 指令并将rm -f更改为del /f /q. -
make --version给了我GNU Make 3.80,感谢您注意到错字,但这只是编译器的错误处理选项,与清理无关。我已经用那里的假货完成了它并省略了。 -
这是什么版本的
make?make --version应该告诉你。make -p clean也可能有帮助。 -
@Chrono Kitsune 就是答案 - 发布它 - 它应该被赞成和接受