一个C文件包含的所有头文件的列表

list of all header files included by a C file

本文关键字:文件 列表 文件包 一个      更新时间:2023-10-16

我试图"手臂"编译一个C文件,它包含了很多头文件递归..我试图找到这些头文件的列表..是否有一个更容易的方法来找到它包含的所有头文件的列表?

您可以使用GCC C预处理器及其选项来转储递归包含的头文件列表:

cpp -M

显示包含的所有标头。

您可能需要为它提供常规构建中使用的所有包含目录的根目录。迭代地运行它,添加更多的include路径,直到错误停止。

这个命令在这种用法中的完整形式是:

cpp -M [-I include_directory *] path_to_c_file.c

根据http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options -H和-M选项可用于此目的。

另一个选择是使用http://www.doxygen.nl/并生成项目文档,之后您可以检查它以查看文件依赖项:),这是首选,因为它支持多种语言:C, c++, Objective-C, c#, PHP, Java, Python, IDL (Corba和Microsoft版本),FORTRAN, VHDL, Tcl。

大多数编译器都只对文件进行预处理。它们将所有的#include扩展成实际的代码是什么意思呢?通常它们会在原始include的行上包含注释(适当的C注释)。因此,您可以在得到的预处理代码中搜索所有此类注释,以收集所有包含的标题。