gpt4 book ai didi

依赖于目录下(包括子目录内)所有文件的 Makefile 规则

转载 作者:行者123 更新时间:2023-12-03 07:49:55 24 4
gpt4 key购买 nike

我的 Makefile 中的一个规则将整个目录 ( res/ ) 压缩到一个 ZIP 文件中。显然,这条规则需要在res/下的任何文件时执行。目录变化。因此,我希望规则将该目录下的所有文件作为先决条件。我该如何实现此规则?

在 Bash 中 with the globstar option enabled ,您可以使用通配符模式 res/**/* 获取该目录中所有文件的列表。 .但是,如果您在 Makefile 中将其指定为先决条件,则它似乎不起作用:

filename.jar: res/**/*

即使经过 touchres/ 中输入文件, 制作静止报告
make: `filename.jar' is up to date.

很明显它没有识别模式。

如果我将目录本身声明为先决条件:
filename.jar: res

然后 Make 不会在文件被修改时重新执行(我认为 make 只查看目录本身的修改日期,只有在添加、删除或重命名直接子项时才会更改)。

最佳答案

这个:

filename.jar: $(wildcard res/**/*)

似乎工作,至少在某些平台上。

编辑:

或者更好,只是剪个结:
filename.jar: $(shell find res -type f)

关于依赖于目录下(包括子目录内)所有文件的 Makefile 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com