是否可以使用 '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 方法。这些依赖项生成作为编译的 副作用 ,因此它不会花费任何额外费用。
建议使用 -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 方法。这些依赖项生成作为编译的 副作用 ,因此它不会花费任何额外费用。