例子:
环境:linux
编译器:gcc
源码:hello.c
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("hello, world\n");
6 }
:~$ gcc -o hello hello.c
1、 源码文件
hello.c 通过预处理器->修改过的源码文件
hello.i 2、
hello.i 通过编译器->汇编代码
hello.s 3、
hello.s 通过汇编器->浮动文件
hello.o 4、
hello.o+printf.o 通过连接器->可执行文件
hello。1、
预处理阶段 预处理器(cpp)根据#后面的指令修改源代码。例:
hello.c中的#include <stdio.h> 命令告诉预处理器把系统头文件stdio.h插入到程序中生产另外一个C程序,一般后缀名为.i。
2、
编译阶段 编译器(cc1)把
hello.i文件转化成汇编代码
hello.s文件。
3、
汇编阶段 汇编器(as)把
hello.s转化成机器语言指令浮动文件程序
hello.o。4、
连接阶段 hello程序调用了标准C库printf函数。连接器(ld)把
printf.o和hello.o连接成
hello可执行文件。
posted on 2012-05-24 14:10
canaan 阅读(2306)
评论(2) 编辑 收藏 引用 所属分类:
读书笔记