gcc的工作流程
1.预处理
预处理阶段时不做语法检查而是执行以下步骤
a.头文件展开
b.进行宏替换
c.进行条件编译
总的来说就是“#”开头的代码在这一过程中编译
gcc -E test.c > test.i
/*对源文件test.c进行预处理并生成预处理文件test.i */
2.编译
编译时进行下列分析
1.词法分析,主要负责检查关键字、标识符是否准确
2.语法分析,主要负责检查程序中语句的语法是否准确
3.语义分析,主要负责检查程序中语句的逻辑意义是否正确
gcc -c test.o
3.汇编
把汇编程序翻译成CPU可识别的二进制文件,成为目标文件
gcc -S test.c /*生成test.s文件*/