GCC(GNU编译器集合)是一个广泛使用的编译器,它可以处理C、C++、Objective-C、Fortran等多种语言
-E:仅执行预处理,不进行编译。预处理后的输出会显示在标准输出中,通常用于调试预处理过程。-P:与-E类似,但会去除预处理指令(如#include和#define),并保留注释。-dD:显示所有预定义的宏,包括编译器内置的宏和通过命令行指定的宏。-dM:显示所有预定义的宏,但只显示宏名称,不显示其定义。-imacros file:将文件中的宏添加到预处理器的宏列表中。-include file:在源代码开头自动包含指定的头文件。-nostdinc:禁止预处理器搜索系统标准库目录。-I dir:向预处理器的头文件搜索路径中添加指定目录。-D macro[=defn]:定义预处理器宏。如果没有提供定义,则默认为1。-U macro:取消预处理器宏的定义。-undef:取消所有预定义的宏。-A name[=value]:定义预处理器断言。-Wp,option:将选项传递给预处理器。例如,-Wp,-P等同于-P。这些预处理选项可以帮助您更好地控制GCC预处理过程。要查看完整的选项列表,请参阅GCC手册:https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html