我需要为我当前的项目编写文档,其中列出了所有的.c文件,并且每个列出了该文件直接或间接包含的每个.h文件。自动发现C依赖关系
这是一个大型项目,虽然我们有理论上有这种信息的Makefiles,但这些Makefiles有时是不正确的(我们从另一家公司继承了此项目)。我们经常必须为我们的更改做一个make clean ; make
实际上反映在重新编译中,所以我不想依赖这些Makefiles。
那么有没有一种工具可以让我们给它一个.c文件的名称和一个包含路径,并让它告诉我们.c文件直接或间接包含的所有.h文件?我们没有任何奇怪的东西像
#define my_include "some_file.h"
#include my_include
所以这个工具不需要是完美的。任何搜索包含常规包含路径中的.c和.h文件都足够好。
你可以改变一个头,包括一个额外的头,从而改变所有的源文件的依赖关系,但你所依赖的列表将不会被更新。完全正确地完成它可能非常费力IIRC,但一个好的开始是将所有自己的头文件包含在依赖关系中。 – 2008-10-27 14:42:37
哦,为了提高性能,请注意,如果有任何文件发生更改,则会重新处理所有文件。所以你可能想要有多个依赖文件(甚至每个源文件可能有一个)。最后,请注意,您通常可以使用-MM,这会跳过对系统标题的依赖关系,因为您不会更改它们。 – 2008-10-27 14:49:08
其实我说谎 - 我总是用-MM我自己:) – 2008-10-28 17:11:47