1. 预处理 -E xxx.i 预处理文件
gcc -E xxx.c -o xxx.i
1) 头文件展开。 --- 不检查语法错误。 可以展开任意文件。
2)宏定义替换。 --- 将宏名替换为宏值。
3)替换注释。 --- 变成空行
4)展开条件编译 --- 根据条件来展开指令。
2. 编译 -S xxx.s 成为汇编文件
gcc -S hello.i -o hello.s
1)逐行检查语法错误。【重点】 --- 整个编译4步骤中最耗时的过程。
2)将C程序翻译成 汇编指令,得到.s 汇编文件。
3 汇编:将汇编指令翻译成对应的 二进制编码。
gcc -c hello.s -o hello.o
4. 链接 无 xxx.exe 可执行文件。
gcc hello.o -o hello.exe
1)数据段合并
2)数据地址回填
3)库引入