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评论)。 因此,您可以搜索结果预处理代码以获取所有此类注释,以收集所有包含的标题。