码迷,mamicode.com
首页 > 其他好文 > 详细

gcc 的编译过程

时间:2015-06-17 21:25:23      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

通常我们都是使用下面的命令来直接生成可执行文件

gcc demo.c -o demo

对于我们来说十分简单,但是对编译器来说却完成了一系列复杂的工作,概括起来有如下几步:

1. 预处理

gcc -E demo.c -o demo.i

这一阶段主要处理源文件中的#ifdef、#include和#define等预处理命令
demo.c -> demo.i(经过预处理后的c源代码文件)


2. 编译阶段

gcc -S demo.i -o demo.s

在编译阶段,gcc把预处理后的结果编译成汇编或者目标模块。
demo.i -> demo.s(汇编语言源代码文件)


3. 汇编

gcc -c demo.s -o demo.o

在汇编阶段,编译器把编译出来的结果汇编成具体cpu上的目标代码模块
demo.s -> demo.o(编译后的目标文件)


4. 链接阶段

gcc demo.o -o demo

在链接阶段,把多个目标代码模块连接生成一个大的目标模块,输入机器代码文件(与其他的机器代码文件和库文件),汇集成一个可执行的二进制代码文件。
demo.o -> demo(可执行文件)

 

gcc 的编译过程

标签:

原文地址:http://www.cnblogs.com/ykzou/p/4584241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!