MAKE如何记住文件时间戳

时间:2015-06-10 09:00:28

标签: c makefile

我发现this question基本上是一样的,但没有得到真正的答案。

make的配置文件/数据库文件在哪里记住文件时间戳,所以它可以告诉哪些内容发生了变化?我检查了项目中没有.make或类似物,也没有在主目录中。

或者它是否以某种方式将信息存储在文件本身中,可能是通过修改时间戳? (听起来很可疑)

2 个答案:

答案 0 :(得分:10)

没有这样的“数据库”。该程序只是比较文件系统修改和源文件和目标文件的创建时间戳。

假设您有以下规则:

some_target: some_source_1 some_source_2

然后,如果some_source_1some_source_2的修改时间戳晚于some_target的修改/创建时间,则规则将激活,目标将重建。

答案 1 :(得分:3)

Makefile描述目标依赖Make执行命令以在必要时创建/重新创建目标。

如果目标不存在,则make将尝试创建目标。

如果目标确实存在,make会比较目标及其依赖项的修改时间。如果在修改目标后修改了任何依赖项,则make将执行命令以重新生成目标。

例如,对于C文件,目标是相应的.o文件,依赖项是包含C源代码的文件(可能还有一些包含文件)。如果.c文件比.o文件新,则make运行C编译器。这将生成.o文件,其修改时间比.c文件更新。