文档详情

3.GCC编译器介绍(Linux基本概念篇).pdf

发布:2016-02-21约5.51千字共8页下载文档
文本预览下载声明
致力于培养专业的嵌入式软件人才! 3. GCC 编译器介绍 GCC 是GNU 项目的编译器组件之一,也是GNU 最具有代表性的作品。在GCC 设计之初仅仅作为一个C 语言的编译器,可是经过十 多年的发展,GCC 已经不仅仅能支持C 语言;它现在还支持Ada 语言、C++语言、Java 语言、Objective C 语言,Pascal 语言、COBOL 语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单是 GNU C Compiler 的意思,而是 GNU Compiler Collection 也即是GNU 编译器家族的意思了,目前已经成为Linux 下最重要的编译工具之一。 GCC 是一个交叉平台的编译器,目前支持几乎所有主流CPU 处理器平台,它可以完成从C、C++、Objective C 等源文件向运行在 特定cpu 硬件上的目标代码的转换,GCC 不仅功能非常强大,结构也异常灵活,便携性(protable)与跨平台支持(cross-plantform. support)特性是GCC 的显着优点,目前编译器所能支持的源程序的格式如下表所示。 GCC 所支持的源程序格式 后缀格式 说明 .c C 语言程序 .a 由目标文件构成的档案文件 .C、cc、cxx C++源程序 .h 源程序所包含的头文件 .i 经过预处理的C 程序 .ii 经过预处理的C++程序 .m Objective-C 源程序 致力于培养专业的嵌入式软件人才! .o 编译后的目标文件 .s 汇编语言源程序 .S 经过预编译的汇编程序 GCC 是一组编译工具的总称,其软件包里包含众多的工具,按其类型,主要有以下的分类。 C 编译器cc,cc1,cc1 plus,gcc C++编译器c++,cc1 plus,g++ 源代码预处理程序cpp,cpp0 库文件libgcc.a, libgcc_eh.a,libgcc_s.so,libiberty.a,libstdc++.[a,so],libsupc++.a 用GCC 编译程序生成可执行文件有时候看起来似乎仅通过编译一步就完成了,但事实上,使用GCC 编译工具由C 语言源程序生成可 执行文件的过程并不单单是一个编译的过程,而要经过下面的几个过程。 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling ) 链接(Linking) 在实际编译的时候,GCC 首先调用cpp 命令进行预处理,主要实现对源代码编译前的玉处理,比如将源代码中指定的头文件包含进来。 接着调用cc1 命令进行编译,作为整个编译过程的一个中间步骤,该过程会将源代码翻译生成汇编代码。汇编过程是针对汇编语言的步骤, 致力于培养专业的嵌入式软件人才! 调用as 命令进行工作,生成扩展名为.o 的目标文件,当所有的目标文件都生成之后,GCC 就调用连接器ld 来完成最后的关键性工作—— 链接。 GCC 编译选项解析 GCC 是Linux 下基于命令行的C 语言编译器,其基本的使用语法如下。 gcc [option |filename]…
显示全部
相似文档