假设我有一个带有规则的makefile
%.o: %.c
gcc -Wall -Iinclude ...
每当头文件更改时,我都希望重建* .o。每当
/include
中的任何头文件发生更改时,都不必重新构建依赖关系列表,而必须重建dir中的所有对象。我想不出一种改变规则以适应这一要求的好方法,我愿意提出建议。如果不需要对标题列表进行硬编码,则可获得加分
最佳答案
如果您使用的是GNU编译器,则编译器可以为您汇编依赖项列表。 Makefile片段:
depend: .depend
.depend: $(SRCS)
rm -f ./.depend
$(CC) $(CFLAGS) -MM $^ -MF ./.depend;
include .depend
要么
depend: .depend
.depend: $(SRCS)
rm -f ./.depend
$(CC) $(CFLAGS) -MM $^ > ./.depend;
include .depend
其中
SRCS
是指向您的整个源文件列表的变量。还有
makedepend
工具,但是我从来没有像gcc -MM
那样喜欢它。