是否可以使用 'touch' 命令管理间接 .h 依赖项?

Is it possible to manage indirect .h dependencies with 'touch' command?

建议使用 -MM 选项来管理 headers 中的间接依赖项。为什么我们不使用 touch 命令。我在这里遗漏了什么,或者只是因为它是一个 hack,我们想保留时间戳的真实最后修改(看起来像侵入式方法)。

示例: - stack.h、stack.c、array.h、array.c 数组依赖于堆栈

array.o: array.c

array.c: array.h

stack.o: stack.c

stack.c: stack.h

stack.h: array.h
    touch stack.h

另一件事:每次使用 -MM 选项都需要完全重新解析文件,对吗?而不是使用这种 touch 方法,如果我没有遗漏任何东西,那将是一个优势,不是吗?

您可以使用 touch。但这对于相对琐碎的环境以外的任何事情都是痛苦的,因为您必须确保您的头文件包含的依赖项准确反映在 makefile 中,否则您可能会遇到构建失败或更糟糕的神秘崩溃。

关于每次都需要完全重新解析的文件,您应该查看modern auto-dependency generation 方法。这些依赖项生成作为编译的 副作用 ,因此它不会花费任何额外费用。