Make可以判断自上次make
调用以来文件是否已被修改。我想它会比较文件'修改时间与上次构建时间的关系。要做到这一点,它必须将最新的时间存储在磁盘上,对吗?
任何人都知道它是否以及在何处或如何做到这一点?
感谢。
答案 0 :(得分:2)
我猜你看起来并不太难找到答案:
http://www.gnu.org/software/make/如果目标文件比其所有依赖项更新,那么它已经是最新的,并且不需要重新生成。
http://www.gnu.org/software/make/manual/html_node/Rule-Syntax.html过时的标准是根据先决条件指定的,其中包含由空格分隔的文件名。 [...]如果目标不存在或者它比任何先决条件(通过比较最后修改时间)更旧,则目标已过期。我们的想法是根据先决条件中的信息计算目标文件的内容,因此如果任何先决条件发生更改,现有目标文件的内容将不再有效。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html make 实用程序会检查时间关系,并应更新那些修改时间早于文件修改时间(称为先决条件)的派生文件(称为目标)。是派生的。
答案 1 :(得分:1)
它没有那样做。
相反,它将目标的修改时间与其依赖项的修改时间进行比较。所以,当你有一个规则
foo-sorted: foo; sort $< > $@
比较foo-sorted
和foo
的修改时间。