我觉得这是一个相当普遍的问题,但在我的具体情况下我无法在任何地方找到答案。我有一个像这样的目标:
initfs.tar: $(INITFS_FILES)
rm -f ./initfs.tar
cd initfs_root
tar --format ustar --exclude-vcs -cf ../initfs.tar ./
INITFS_FILES 定义:
INITFS_FILES:=$(shell find ./initfs_root/ -not -path '*/.*/*' -not -name '.*' -type f)
每次我打电话时make initfs.tar
,都会运行这个目标。initfs_root 目录中没有文件被触及(并且所有文件都使用该 find 命令找到)。initfs.tar 确实是创建的。
有谁知道为什么会这样?对我来说,这没有任何意义,根据我在互联网上遇到的所有其他帖子和我目前的专业知识,我的一切都是正确的(尽管很明显,我在 Makefile 领域缺乏专业知识;)