第9课C编译器——gcc.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 C编译器—— gcc 9.1 gcc简介 9.2 make与Makefile 9.1 gcc简介 9.1.1 gcc编译步骤 Linux下比较常用的C编译器是gcc(GNU C compiler)。这是一个效率很高的著名编译器,用它编译C程序文件一般通过以下步骤: (1)预处理(Preprocessing),调用cpp程序分析程序文件中出现的各种命令及语法。 (2)编译(Compilation),调用cc1程序将C程序文件“翻译”成汇编语言。 (3)汇编(Assembly),调用as将上一步产生的内存内的汇编指令转化为二进制机器指令,产生带“.o”后缀的目标文件(Object file)。 (4)连接(Linking)调用程序ld将上一步产生的各目标文件及引用的函数连接,生成可执行文件。 9.1.2 gcc的用法 gcc的基本用法是: gcc –o 生成的可执行文件名称 C程序1 ... C程序n↙ 此用法将若干个C程序通过以上4步处理,最后生成一个可在提示符下直接执行的可执行文件。如果只需要作前3步处理,可以用: gcc –c C程序↙ gcc的其他常用可选项有: (1)编译选项: -O:对编译的结果进行优化,但编译过程中可能需要使用很多的内存以及消耗更长的时间。 -O2:比-O更好的优化,当然也耗费更多的资源与时间。 -I目录:定义头文件搜索目录。 (2)连接选项: -L库文件目录:指定库文件所在的目录。 -l库文件:在连接时使用指定的库文件。 -static:禁止使用共享函数库连接。 -shared:尽量与共享函数库连接,这是缺省选择。 gcc使用的可选项非常多,用户可通过: man gcc↙ 9.2 make与Makefile make命令可以根据当前目录下的Makefile文件的内容实现对软件包的自动编译。它可以大大减少手工编译带来的不便。以下是一个简单的Makefile文件的内容: myprogram: prog1.o prog2.o↙ gcc –o myprogram prog1.o prog2.o↙ prog1.o: prog1.c prog1.h↙ gcc –c –I. –o prog1.o prog1.c↙ prog2.o: prog2.c util.c↙ gcc –c –o prog2.o prog2.c util.c↙ clean: ↙ rm –f myprogram *.o↙ 这个Makefile文件中包含了一系列目标(target),每个目标由目标名称(例如“myprogram:”)、实现该目标所需的文件或其他目标(称为“dependency”,例如要实现myprogram这个target就必须有prog1.o和prog2.o这两个target,而要实现prog1.o这个target又必须依赖于prog1.c以及prog1.h这两个文件,等等)以及为实现该目标而应该完成的一组命令(例如为实现myprogram目标,必须执行命令“gcc –o myprogram prog1.o prog2.o”)。 make命令的用法是: make [目标]↙ 在Makefile中还可以使用一些约定的缩写来简化命令的结果。例如: $@:代表该目标的全名。 $*:代表删除了后缀(即小数点及其后部分)的目标名。 $:代表该目标的第一个相关目标名。 在Makefile中还可以加入注释。注释所在的行用注释符“#”开头。另外,还可以定义宏,使Makefile的结构更加清晰。 小结 命令总结如下: gcc:GNU的C编译器。 make:按Makefile文件的指示实现软件包的自动编译和安装。 本章主要介绍gcc的基本用法和Makefile的编写,并没有涉及到如何开始一个程序,这方面可以参考其他C语言的书。Makefile的文件在开发中是非常有用的,它可以简化编译的操作,在Linux下的工具源码包里面都包含了Makefile文件。了解Makefile有助于掌握源程序。 冶金工业出版社 高等教育“十一五”规划教材 * 冶金工业出版社 高等教育“十一五”规划教材 *

文档评论(0)

aa15090828118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档