问题是:对于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 文件。比如改变常量的值等。
你总是想把源文件使用的所有头文件作为目标文件的先决条件。
关于c - 使用 make 时,目标文件应该依赖于它自己的头文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290438/