【发布时间】:2012-07-06 10:25:08
【问题描述】:
我正在阅读make manual 中的Automatic Dependency Generation,但我无法弄清楚为什么需要此功能。我正在从事并从头开始编写的项目的结构如下:
- 每个单元(库)都有自己的文件夹
- 每个 .cpp 文件应包含来自同一目录的同名的单个 .h 文件。好的,这条规则可能有点过于严格,比如在循环依赖的情况下,在这种情况下,我可能会包含另一个 .h 文件,就像下一条规则中描述的那样
- 当在 .h 文件中包含其他头文件时,如果依赖项位于另一个单元(库)中,请始终使用相对于项目根目录的路径。否则,只需包含文件名即可。
在 makefile 中,我将 -I . 传递给编译器。当它在X目录中遇到.cpp文件时,它会在同一目录(或.目录)中搜索.h文件。在解析 .h 文件时,它会遇到相对于 . 文件夹的包含,因此它会知道在哪里查找它们。
现在,如果代码的结构可以像我上面描述的那样,为什么有人想要生成一个带有-M 标志的依赖项列表并使用 sed 来生成一个晦涩的 .d 文件(依赖项 fie)?我看不到从代码文件生成特定依赖项列表的意义。
【问题讨论】:
标签: c++ gcc compilation makefile dependencies