1.预处理(gcc -E test.c -o test.i)
(1)将所有宏定义展开
(2)去掉所有注释
(3)处理条件编译指令(#ifndef #define #endif等 )
(4)处理#include预编译指令,将所包含的头文件添加到指令位置
2.编译(gcc -S test.i -o test.s)
(1)检查语法错误
(2)翻译成汇编语言
3.汇编(gcc -c test.s -o test.o)
(1)转换成二进制文件
4.链接
(1)链接程序所依赖的库
1.预处理(gcc -E test.c -o test.i)
(1)将所有宏定义展开
(2)去掉所有注释
(3)处理条件编译指令(#ifndef #define #endif等 )
(4)处理#include预编译指令,将所包含的头文件添加到指令位置
2.编译(gcc -S test.i -o test.s)
(1)检查语法错误
(2)翻译成汇编语言
3.汇编(gcc -c test.s -o test.o)
(1)转换成二进制文件
4.链接
(1)链接程序所依赖的库