用make构建后是什么.d文件

jae*_*ong 47 linux makefile build

有时,我找到给定源文件的.d文件.例如,如果我编译test.c,我就得到了

test.d, test.o
Run Code Online (Sandbox Code Playgroud)

我知道test.o是目标文件,但不知道什么是test.d.你能给出任何提示或指示吗?

Mad*_*ist 46

许多构建系统会自动将检测到的make依赖项添加到.d文件中.特别是,对于C/C++源文件,它们确定#include需要哪些文件并自动将该信息生成到.d文件中.

.d文件随后被makefile文件包含这样做是知道的信息.如果你看一下这些文件的内容,他们就会做出必备条件,比如:

foo.o : foo.h bar.h biz.h
Run Code Online (Sandbox Code Playgroud)

等等

  • SO问题的评论不是讨论它的地方.这并不难:基本上当你的当前makefile写入`$*.d`时,你写的是`.deps/$*.d`或者其他任何东西.如果您无法弄清楚,您可以提出一个新问题,显示您当前生成依赖关系的makefile内容,然后有人可以帮助您修改它以写入子目录.你也可以阅读http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ (3认同)
  • 许多人配置他们的makefile将`.d`文件写入子目录,这样他们就不会混淆当前目录. (2认同)