在makefile中,我有以下行:
helper.cpp: dtds.h
这确保了每当更改dtds.h时都会重建helper.cpp。但是,如果两个其他头文件中的任何一个发生更改,我希望重建项目中的所有文件,如下所示:
*.cpp: h1.h h2.h
显然这不起作用,但我不知道让nmake做我想做的正确方法。有人可以帮忙吗?我不想手动指定每个单独的文件依赖于h1.h和h2.h.
谢谢。 (我正在使用visual studio 2005附带的nmake。)
尝试
%.cpp : h1.h h2.h
这适用于GNU make - 不知道nmake是否兼容......
编辑:顺便说一下:不应该这样
helper.o : dtds.h
%.o : h1.h h2.h
毕竟,你不想重新制作.cpp
文件(你如何制作源文件?),但重新编译...
编辑2:检查NMAKE Reference。据this说,像
.cpp.obj: h1.h h2.h
可能会工作......
谢谢你的帮助,Christoph。我试过了:
.cpp.obj: h1.h h2.h
并得到了有用的错误消息:
makefile(58) : fatal error U1086: inference rule cannot have dependents
我最终通过制作我想要编译的文件列表来解决它,然后将依赖项添加到整个列表中。
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h