使用make时,对象文件是否应该依赖于自己的头文件?

Max*_*ace 1 c dependencies makefile header object-files

问题是:对于在较大项目中其他地方使用foo.c.c文件,是否应将foo.oMakefile列表中的目标文件编译目标foo.h作为依赖项?

foo.o: foo.c foo.h
    $(CC) $(CFLAGS) -c -o foo.o foo.c
Run Code Online (Sandbox Code Playgroud)

这只是一个常规问题吗?

这是我到现在为止的想法,并且回答了一个问题:

似乎任何合法的改变foo.h都需要相应的改变foo.c.因此,没有必要foo.h列为依赖项.但是,这可能是一个好主意,因为我们希望立即通知(通过重新编译)如果更改foo.h破坏了任何内容foo.c.

Mad*_*ist 5

很可能对不需要更改.c文件的头文件进行更改.例如,更改常量的值等.

您始终希望将源文件使用的所有头文件作为目标文件的先决条件.