所有.cpp文件都依赖于两个.h文件?

时间:2009-01-07 00:22:27

标签: makefile nmake

在makefile中,我有以下一行:

helper.cpp: dtds.h

确保在更改dtds.h时重建helper.cpp。但是,如果两个其他头文件中的任何一个发生更改,我希望重建项目中的所有文件,如下所示:

*.cpp: h1.h h2.h

显然这不起作用,但我不知道让nmake做我想做的正确方法。有人可以帮忙吗?我不想手动指定每个单独的文件依赖于h1.h和h2.h。

感谢。 (我正在使用visual studio 2005附带的nmake。)

2 个答案:

答案 0 :(得分:2)

尝试

%.cpp : h1.h h2.h

在GNU make中有效 - 不知道nmake是否兼容......

编辑:顺便说一句:不应该是

helper.o : dtds.h

%.o :  h1.h h2.h

毕竟,您不想重新制作.cpp文件(如何制作源文件?),但重新编译...

编辑2:检查NMAKE Reference。根据{{​​3}},类似

.cpp.obj: h1.h h2.h

可能有用......

答案 1 :(得分:2)

感谢你的帮助,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