【发布时间】:2011-03-07 16:13:35
【问题描述】:
假设您有一个带有两个伪目标“all”和“debug”的 Makefile。 “调试”目标旨在构建与“全部”相同的项目,除了一些不同的编译开关(例如 -ggdb)。由于目标使用不同的编译开关,如果在两者之间切换,显然需要重新构建整个项目。但 GNUmake 并不自然地认识到这一点。
所以如果你输入 make all 你会得到
Building ...
...
然后如果你输入make debug,你会得到
make: Nothing to be done for `debug'.
所以我的问题是:你如何在 Makefile 中实现一个干净的解决方案,以注意到最后一次构建使用了与你当前想要的不同的伪目标或不同的编译开关?如果它们不同,Makefile 将重建所有内容。
【问题讨论】: