1

在makefile中,我有以下行:

helper.cpp: dtds.h

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

*.cpp: h1.h h2.h

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

谢谢。(我正在使用 Visual Studio 2005 中包含的 nmake。)

4

2 回答 2

2

尝试

%.cpp : h1.h h2.h

这适用于 GNU make - 不知道 nmake 是否兼容......

编辑:顺便说一句:不应该这样吗

helper.o : dtds.h

%.o :  h1.h h2.h

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

Edit2:检查NMAKE 参考。据此类似

.cpp.obj: h1.h h2.h

可能工作...

于 2009-01-07T00:30:04.543 回答
2

谢谢你的帮助,克里斯托夫。我试过:

.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
于 2009-01-07T01:30:36.747 回答