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

我试图“武装”编译一个C文件,它包括递归的许多头文件..我正在尝试找到这些头文件的列表..有一个更简单的方法来查找它包括的所有头文件的列表?

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

cpp -M 

这将显示包含的所有标题。

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

此用法中此命令的完整forms为:

 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.stack.nl/~dimitri/doxygen/并生成项目文档,之后您可以检查它以查看文件依赖性:),它是首选,因为它支持多种语言:C ,C ++,Objective-C,C#,PHP,Java,Python,IDL(Corba和Microsoft flavors),FORTRAN,VHDL,Tcl。

大多数编译器都已切换到只对文件进行预处理。 除此之外,他们将所有#include扩展为实际代码。 通常他们确实在原始包含的行上包含评论(适当的C评论)。 因此,您可以搜索结果预处理代码以获取所有此类注释,以收集所有包含的标题。