【问题标题】:Make make rebuild a target when it depends on a deleted file当它依赖于已删除的文件时使 make 重建目标
【发布时间】:2018-05-18 10:15:42
【问题描述】:

假设我有这样的make 规则:

SOURCES := $(wildcard ./text/*.txt)

$(INDEX) : $(SOURCES)
    $(COMPILER) $(SOURCES)

然后删除其中一个文本文件./text/foo.txt。目标$(INDEX) 似乎没有重建。在这种情况下如何使make 重建?

【问题讨论】:

  • 因此您想要维护所需来源的列表。在这种情况下,您是否希望 Make 更新列表(因此下次不需要该丢失的文件)?如果出现一个新的源文件,你想让 Make 将它添加到列表中(因此下次需要它)怎么办?

标签: makefile incremental-build


【解决方案1】:

如果您的 ./text 目录仅包含您的源和所有源,您可以将其添加为目标的先决条件:

$(INDEX) : $(SOURCES) ./text

目录与常规文件不同:它们的最后修改日期会在您在其中添加、删除或重命名文件(或子目录)时更新,而不是在修改现有文件时更新。将其视为包含所包含文件列表的文件。

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多