问题是:对于在较大项目中其他地方使用foo.c
的.c
文件,是否应将foo.o
Makefile列表中的目标文件编译目标foo.h
作为依赖项?
foo.o: foo.c foo.h $(CC) $(CFLAGS) -c -o foo.o foo.c
这只是一个常规问题吗?
这是我到现在为止的想法,并且回答了一个问题:
似乎任何合法的改变foo.h
都需要相应的改变foo.c
.因此,没有必要foo.h
列为依赖项.但是,这可能是一个好主意,因为我们希望立即通知(通过重新编译)如果更改foo.h
破坏了任何内容foo.c
.
很可能对不需要更改.c文件的头文件进行更改.例如,更改常量的值等.
您始终希望将源文件使用的所有头文件作为目标文件的先决条件.