1.预处理
gcc -E hello.c -o hello.i
预处理并不实际的参与编译过程,只是文件的包含。
2.编译
geec -S hello.i -o hello.s
编译 编译源文件生成汇编文件,生成的hello.s是汇编文件(说白了就是一堆汇编指令)
编译的过程就是将C语言翻译成汇编指令。
3.汇编
gcc -c hello.s -o hello.o
汇编生成的是机器码 二进制编码
hello.o 是目标文件
4.链接
gcc hello.s -o hello
链接生成可执行文件
链接是什么?系统提供的库文件和运行的时文件
hello 是可执行文件 等价于 a.out