- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五部分附加的GCC
第五部分 常用开发工具 5.1 gcc编译系统 5.2 gdb程序调试工具 5.3 程序维护工具make 5.1 gcc编译系统 5.1.1 C语言编译过程 5.1.2 文件名后缀 5.1.3 gcc编译器简介 5.1.4 gcc编译器的工作过程 5.1.5 gcc命令行选项 5.1.1 C语言编译过程 5.1.1 C语言编译过程 5.1.1 C语言编译过程 5.1.1 C语言编译过程 C语言的编译过程可分为四个阶段: 1、预处理(Preprocessing) 对源程序中的伪指令(即以#开头的指令)和特殊符号进行处理的过程。 伪指令包括: 宏定义指令 条件编译指令 头文件包含指令 5.1.1 C语言编译过程 C语言的编译过程可分为四个阶段: 2、编译(Compilation) 编译就是将源程序转换为计算机可以执行的二进制代码。 说明: 在Linux下,目标文件的缺省后缀为.o 编译程序将通过词法分析和语法分析,将其翻译成为等价的汇编代码。 在使用gcc进行编译时,缺省情况下,不输出这个汇编代码的文件。如果需要,可以在编译时指定-S选项。这样,就会输出同名的汇编语言文件。 5.1.1 C语言编译过程 C语言的编译过程可分为四个阶段: 3、汇编(Assembly) 汇编的过程实际上是将汇编语言代码翻译成机器语言的过程。 产生一个扩展名为.o的目标文件。 4、链接(Linking) 目标代码不能直接执行,要想将目标代码变成可执行程序,还需要进行链接操作。才会生成真正可以执行的可执行程序。 链接操作最重要的步骤就是将函数库中相应的代码组合到目标文件中。 5.1.2 文件名后缀 gcc可以针对支持不同的源程序文件进行不同的处理,文件格式以文件的后缀来识别。 5.1.3 gcc编译器简介 gcc(GNU Compiler Collection) 在Linux平台上最常用的C语言编译系统是gcc,它是GNU项目中符合ANSI C标准的编译系统。 gcc的使用格式: gcc [options][filenames] 说明: 当不用任何选项时,gcc将会生成一个名为a.out的可执行文件。 5.1.3 gcc编译器简介 例子:在linux上编译一个c程序。 #include stdio.h int main() { printf(hello world.\n); return 0; } 5.1.4 gcc编译器的工作过程 1、预处理(Preprocessing) 2、编译(Compilation Assembly) 源代码转换为汇编语言(在编译时选择-S选项,可以看到生成的汇编代码.s文件) 汇编代码(.s)转换为目标代码(.o) 3、链接(Linking) 将目标代码与各库函数进行链接并重定位。生成可执行程序。 5.1.5 gcc命令行选项 预处理选项 5.1.5 gcc命令行选项 例子:使用-I选项包含保存在非标准位置中的头文件。 # gcc -I/usr/openwin/include file.c 5.1.5 gcc命令行选项 编译程序选项 5.1.5 gcc命令行选项 例子:在gcc中使用-W控制警告信息。 # gcc -Wall -o hello1 hello1.c 例子:使用gcc的-g选项来产生调试符号, # gcc -g -o test1 test1.c 5.1.5 gcc命令行选项 例子:多文件的编译。 5.1.5 gcc命令行选项 编译方法一: 编译方法二: 说明: 方法二不产生中间目标文件,直接生成一个可执行文件,因而,程序内容稍有改动,就要重新编译全部程序。 5.1.5 gcc命令行选项 优化程序选项 优化是编译器的一部分,它可以检查和组合编译器生成的代码,指出未达到最优的部分,并重新生成它们,从而使用户编写的程序更加完美且节省空间。 在gcc编译器选项中,使用-O选项对代码进行优化。优化级别分3级,由高到低分别为:-O3、-O2、-O1, 5.1.5 gcc命令行选项 优化程序选项 说明: -O1(或-O)、-O2、-O3分别代表优化级别,数字越高,代表gcc的优化级别越高,高的优化级别代表着程序将运行的更快。 优化级别越高则程序量越大。 直接优化程序本身,性能的提高的变化更加明显。 5.1.5 gcc命令行选项 连接程序选项 库:是一组预先编译好的函数集合。 说明: 标准库文件一般存储在/lib和/usr/lib目录中。 所有的库名都以lib开头。例如:libc.so(标准C语言函数库)、libm.so(数学运算函数库) 以.a结尾的是静态库;以.so结尾的库是动态库。 使用ar工具将目标文件收集起来,放到一个归档文件中。 5.1.5 gcc命令
您可能关注的文档
- 第二讲(上) 文献检索.ppt
- 第二讲 数据描述.ppt
- 第二讲 数据与数据运算.ppt
- 第二讲MATLAB的数值计算.ppt
- 第五章 SQL.ppt
- 第五章 中断系统.ppt
- 第二讲_辅助_关于运算符结合性及自加运算.ppt
- 第五章 程序设计基础.ppt
- 第二部分 指令系统及汇编语言程序设计.doc
- 第五章 针对消费者的促销方法第一节.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- T_HNTI 030—2020_茶树种质资源考察收集技术规范.pdf VIP
- 报关原理与实务(第二版)(第5章)1进出口货物报关单填制.ppt VIP
- 2025年滨州市中考英语试题卷(含答案逐题解析).docx
- 基于能力培养的人工智能课程体系设计.docx
- Q/GDW1827-2013三相智能电能表技术规范.pdf VIP
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录.pptx VIP
- 华能国际电力股份有限公司本质安全体系管理手册.doc VIP
- 教育行业AI大模型设计方案【231页WORD】.docx VIP
- 2024医保物价培训.pptx VIP
- 屋顶光伏发电建设项目实施方案.docx
文档评论(0)