自动将C头文件专门化到当前平台和配置:如何?

自动将C头文件专门化到当前平台和配置:如何?,c,header-files,static-analysis,C,Header Files,Static Analysis,我希望能够编写小脚本来分析宏、原型等,当我在C程序中包含与大型外部库关联的正式C头文件时,这些宏、原型等有效地包含在我编译的平台上。(假设我是使用gcc编译的。其他编译器的答案也很有趣。) 这方面的严重障碍是递归的include、条件编译指令以及两者之间的交互。因此,我寻求一种工具,通过处理这些指令,递归地查找有效包含的文本,生成一个头文件,其中包含的头文件相当于只包含当前平台的官方文件 (如果除了提供有条件的相关宏和C声明外,还保留注释,并不时插入#行指令以指示输出的各个部分的来源,那将是非常

我希望能够编写小脚本来分析宏、原型等,当我在C程序中包含与大型外部库关联的正式C头文件时,这些宏、原型等有效地包含在我编译的平台上。(假设我是使用gcc编译的。其他编译器的答案也很有趣。)

这方面的严重障碍是递归的include、条件编译指令以及两者之间的交互。因此,我寻求一种工具,通过处理这些指令,递归地查找有效包含的文本,生成一个头文件,其中包含的头文件相当于只包含当前平台的官方文件

(如果除了提供有条件的相关宏和C声明外,还保留注释,并不时插入#行指令以指示输出的各个部分的来源,那将是非常好的。但所有这些都不是很重要。)

我并不坚持从非顶级的#includes递归输出,不过为了正常工作,该工具显然必须递归地访问它要执行的头中的#includes文件。因此,该工具可以在其输出中保留那些较低级别的“include”指令,而不是递归地插值它们的递归处理体


有没有专门针对头文件的工具?

查看我的简历。我会直截了当地回答,但对工具的回答却不屑一顾。