Linux系统下gcc是GNU推出的多平台编译器,是GNU的代表作品之一。gcc功能强大,而且开源,不仅开一编译C语言源程序,还可以编译C++语言源程序。作为一名Linux平台C/C++开发者,学会gcc工具是必备技能。
gcc对C/C++语言源程序的编译过程gcc对C/C++语言的编译可分为4个阶段:预处理(Preprocess),编译(Compilation),汇编(Assembly)和连接(Linking)。
这四个阶段具体来说主要干了以下的工作:
预处理阶段:将源码中所有宏定义展开,删除#define;处理条件编译指令(#if,#ifdef等);处理#include预编译指令,通过递归的方式将被包含的文件插入到预编译指令的位置;删除所有注释;添加代码行号;编译阶段:对预处理完的文件进行一系列的词法,语法分析,最终生成汇编代码。汇编阶段:将编译阶段生成的汇编代码转变成机器可以执行的二进制代码。链接阶段:该阶段主要是解决多个文件之间的符号引用问题。链接器会把所有目标文件链接到一起,确定各个符号最终的地址,生成可执行文件。
gcc的语法格式gcc[选项]准备编译的文件[选项][目标文件]
使用例:
明天的文章会继续分享gcc各种选项的用法,以及我在日常工作中,项目开发中的一些使用经验。希望大家点个赞加