【问题标题】:Make: Dependency on newest file in directoryMake:依赖于目录中的最新文件
【发布时间】:2016-09-07 11:21:56
【问题描述】:

对于一个小项目,我有以下工作流程:

  1. 编译代码并生成./data./images
  2. 运行代码,将许多文件写入./data
  3. 从数据文件生成图像,将它们放在./images
  4. 从图像生成视频

我写了一个makefile,它可以运行代码,如果需要的话,可以在之前编译它。但我不知道如何实现步骤 3 和 4 的依赖关系,目前手动设置目标。

那么,有没有办法检查例如./data 中的最新文件比 ./images 中的最新文件更新?不必逐个文件执行此操作,并且数据/图像文件的总数是未知的。

【问题讨论】:

  • “没有必要逐个文件地执行此操作” 为什么不呢? dataimages中的文件不是一一对应的吗?

标签: makefile dependencies


【解决方案1】:

通常,目录的日期是添加/修改最后一个文件的日期,因此您可以使用目录本身的时间戳来获取依赖关系。

images : data
     // generate images

或者,如果两个目录中的文件之间存在映射,您可以执行以下操作:

images/%.img: data/%.dat
    // generate image...

这将阻止重新处理已处理的数据。

【讨论】:

  • 请注意,目录时间戳仅在文件添加和删除时更改。当您更改现有文件的内容时,目录时间戳不会更改。
猜你喜欢
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
相关资源
最近更新 更多