精通GCC编译器课件.ppt

精通GCC编译器课件.ppt

ID:57373936

大小:240.50 KB

页数:55页

时间:2020-08-13

精通GCC编译器课件.ppt_第1页
精通GCC编译器课件.ppt_第2页
精通GCC编译器课件.ppt_第3页
精通GCC编译器课件.ppt_第4页
精通GCC编译器课件.ppt_第5页
资源描述:

《精通GCC编译器课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、精通GCC编译器contentGCC概论GCC深入探索GCC的编译选项GCC的应用技巧01.GCC是何物?Linux系统下的gcc(GNUCCompiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性

2、来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。DEMOGCC的几个版本请问GCC和cc有啥区别?怎样在linux下查看GCC的版本信息?查看版本信息安装路径:相关文件类型:c为后缀的文件,C语言源代码文件;.a为后缀的文件,是由目标文件构成的档案库文件;.C,.cc或.cxx为后缀的文件,是C++源代码文件;.h为后缀的文件,是程序所包含的头文件;.i为后缀的文件,是已经预处理过的C源代码文件;.ii为后缀的文件,是已经预处理过的C++源代码文件;.m为后缀的文件,是Objectiv

3、e-C源代码文件;.o为后缀的文件,是编译后的目标文件;.s为后缀的文件,是汇编语言源代码文件;.S为后缀的文件,是经过预编译的汇编语言源代码文件。gcc编译的4个过程:预处理(也称预编译,Preprocessing):命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。编译(Compilation):接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编(Assembly):汇编过程是针对汇编语言的步骤,调用as进行工作。连接(Linki

4、ng):当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接参考:《深入透析》演示:DEMO基本的用法是∶gcc[options][filenames]1、没有任何选项:gcchelloworld.c结果会在和helloworld.c相同的目录下产生一个a.out的可执行文档。2、-o选项,指定输出文档名:gcc-ohelloworldhelloworld.c-o意思是Output即需要指定输出的可执行文档的名称。这里的名称为helloworld。3、-c选项,只编译,不汇编连接:gcc-chelloworld.c-c

5、意思就是Compile,产生一个叫helloworld.o的目标文档4、-S选项,产生汇编源文档:gcc-Shelloworld.c-S意思就是aSsemble,产生一个叫helloworld.s的汇编源文档5、-E选项,预处理C源文档:gcc-Ehelloworld.c-E意思就是prEprocess。输出不是送到一个文档而是标准输出。当然能够对他进行重定向:gcc-Ehelloworld.c>helloworld.txt优化选项-O选项,基本优化:gcc-Ohelloworld.c-O意思就是Optimize,产生一个经过优化的叫作a.out的可

6、执行文档。也能够同时使用-o选项,以指定输出文档名。如:gcc-O-otesthelloworld.c即会产生一个叫test的经过优化的可执行文档。-O2选项,最大优化:gcc-O2helloworld.c产生一个经过最大优化的叫作a.out的可执行文档。调试选项-g选项,产生供gdb调试用的可执行文档:gcc-ghelloworld.c产生一个叫作a.out的可执行文档,大小明显比只用-o选项编译汇编连接后的文档大。-pg选项,产生供gprof剖析用的可执行文档:gcc-pghelloworld.c产生一个叫作a.out的执行文档,大小明显比用-g

7、选项后产生的文档还大。02.GCC快速入门第一个实例hello!DEMOGCC常用编译开关-w禁止输出警告消息-Werror将所有警告转换为错误-Wall显示所有的警告消息-v显示编译程序的当前版本号-static连接器将忽略动态连接库,同时通过将静态目标文件直接包含到结果目标文件完成对所有引用的解析。-shared-fPCI连接器将生成共享目标代码,-pipe使用管道而不是临时文件一个阶段到另一个阶段交换输出的方式,可以加快编译速度。建议使用。-o指定输出文件,对各种输出皆有效。-I

指定搜索系统头文件的目录,可以重复使

8、用多个该选项指定多个目录-Dmacro:相当于C语言中的#definemacro-UMACRO取消对MACR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。