0

建议使用-MM选项来管理标头中的间接依赖关系。为什么我们不使用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方法,如果我没有错过任何东西,那就是一个优势,不是吗?

4

1 回答 1

1

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

关于每次都需要完全重新解析文件,您应该研究现代自动依赖生成方法。这些将依赖生成作为编译的副作用,因此它不会花费任何额外费用。

于 2019-10-21T23:35:26.550 回答