博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用gcc编译C程序的详细过程

Posted on 2011-03-30 21:25  天地玄黄  阅读(4697)  评论(0编辑  收藏  举报

     在Linux中,gcc更像一个工具大管家,管理很多工具一起来对C程序进行编译。详细过程请看下图,带阴影的箭头表示文件的流程,空白箭头表示控制过程:

gcc

     下面详细介绍一下这个过程。

       1、程序员在Linux终端中输入命令gcc eatc.c –o eatc

       2、gcc接管Linux的控制权,然后立即启用一个工具C preprocessor(cpp)。这个工具处理C语言的源代码文件(eatc.c),处理比如#include、#define之类的东西(预处理)。

       3、之后,gcc接管。gcc把预处理后的文件进一步处理,变成和原始的C文件等价的 .s 汇编文件,这是一个人工可以读懂的文件。

       4、之后,gcc就省事了。它把 .s 文件交给gas(一种GNU assembler)进行处理,生成 .o 文件。

       5、之后,再使用ld(一种GNU linker)进行处理,把文件中使用到的C库程序全部都链接到一起。最终形成一个可执行文件。

       6、gcc把控制权交还给Linux。