hello.c
经历四个阶段
预处理 -->hello.i (修改的源程序)
编译 -->hello.s (汇编程序)
汇编 -->hello.o (可重定位的目标程序)
链接 -->hello (可执行目标程序)
执行这四个阶段的程序构成编译系统
- 预处理阶段:
简单来说根据 # 开头的命令修改原来的c文件
如#include<stdio.h> 将stdio.h的内容
添加到程序文本
得到另一个C程序,以 .i 做后缀
2.编译阶段
编译器将 .i文件翻译成文本文件-->hello.s
hello.s是汇编语言组成的文本文件
3.汇编阶段
hello.s-->hello.o
将hello.s翻译成机器语言指令,保存在hello.o
hello.o是二进制文件,由0和1组成
4.链接阶段
如:hello.c调用了printf函数
而 printf 函数是c语言库里的函数
存在于 printf.o 的文件中
链接则将 hello.o 和 printf.o
两个文件合并(处理)为 hello 文件
之后hello文件可加载到内存中执行