欢迎来到天天文库
浏览记录
ID:33579935
大小:258.12 KB
页数:8页
时间:2019-02-27
《3.gcc编译器介绍(linux基本概念篇)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、致力于培养专业的嵌入式软件人才!3.GCC编译器介绍GCC是GNU项目的编译器组件之一,也是GNU最具有代表性的作品。在GCC设计之初仅仅作为一个C语言的编译器,可是经过十多年的发展,GCC已经不仅仅能支持C语言;它现在还支持Ada语言、C++语言、Java语言、ObjectiveC语言,Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言,等等。而GCC也不再单是GNUCCompiler的意思,而是GNUCompilerCollection也即是GNU编译器家族的意思了,目前已经成为Linux下最重要的编译工具之一。GCC是一个交叉
2、平台的编译器,目前支持几乎所有主流CPU处理器平台,它可以完成从C、C++、ObjectiveC等源文件向运行在特定cpu硬件上的目标代码的转换,GCC不仅功能非常强大,结构也异常灵活,便携性(protable)与跨平台支持(cross-plantform.support)特性是GCC的显着优点,目前编译器所能支持的源程序的格式如下表所示。GCC所支持的源程序格式后缀格式说明.cC语言程序.a由目标文件构成的档案文件.C、cc、cxxC++源程序.h源程序所包含的头文件.i经过预处理的C程序.ii经过预处理的C++程序.mObjective-C源程序致力于培养专业
3、的嵌入式软件人才!.o编译后的目标文件.s汇编语言源程序.S经过预编译的汇编程序GCC是一组编译工具的总称,其软件包里包含众多的工具,按其类型,主要有以下的分类。C编译器cc,cc1,cc1plus,gccC++编译器c++,cc1plus,g++源代码预处理程序cpp,cpp0库文件libgcc.a,libgcc_eh.a,libgcc_s.so,libiberty.a,libstdc++.[a,so],libsupc++.a用GCC编译程序生成可执行文件有时候看起来似乎仅通过编译一步就完成了,但事实上,使用GCC编译工具由C语言源程序生成可执行文件的过程并不单
4、单是一个编译的过程,而要经过下面的几个过程。预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)在实际编译的时候,GCC首先调用cpp命令进行预处理,主要实现对源代码编译前的玉处理,比如将源代码中指定的头文件包含进来。接着调用cc1命令进行编译,作为整个编译过程的一个中间步骤,该过程会将源代码翻译生成汇编代码。汇编过程是针对汇编语言的步骤,致力于培养专业的嵌入式软件人才!调用as命令进行工作,生成扩展名为.o的目标文件,当所有的目标文件都生成之后,GCC就调用连接器ld来完成最后的关键性工作——链接。G
5、CC编译选项解析GCC是Linux下基于命令行的C语言编译器,其基本的使用语法如下。gcc[option
6、filename]…对于编译C++的源程序,其基本语法如下:g++[option
7、filename]…其中option为GCC使用时的选项,而filename为需要GCC做编译的处理的的文件名。就GCC来说,其本身是一个十分复杂的的命令,合理的使用其命令选项可以有效地提高程序的编译效率、优化代码,GCC拥有众多的命令选项,有超过100个的编译选项可用,按其应有如下的分类。常用编译选项-c选项:这是GCC命令的常用选项。-c选项告诉GCC仅把源程序编译为目标代码
8、而不做链接工作,所以采用该选项的编译指令不会生成最终的可执行程序,而是生成一个与源程序文件名相同的以.o为后缀的目标文件。例如一个Test.c的源程序经过下面的编译之后会生成一个Test.o文件#gcc–cTest.h-S选项:使用该选项会生成一个后缀名为.s的汇编语言文件,但是同样不会生成可执行程序。致力于培养专业的嵌入式软件人才!-e选项:-e选项只对文件进行预处理,预处理的输出结果被送到标准输出(比如显示器)。-v选项:在Shell的提示符号下键入gcc–v,屏幕上就会显示出目前正在使用的gcc版本的信息-xlanguage:强制编译器指定的语言编译器来编译
9、某个源程序。例如下面的指令:#gcc-xc++p1.c该指令表示强制采用C++编译器来编译C程序P1.c。-I
10、户/hom
此文档下载收益归作者所有