GCC使用说明.docVIP

  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文档。上传文档
查看更多
GCC使用说明

GCC使用手册及常用命令行 GCC使用手册 作者:Clock ? 1.前言 ??? GCC编译器的手册(GCC MANUAL)的英文版已经非常全面,并且结构也非常完善了,只是一直都没有中文的版本,我这次阅读了GCC编译器的主要内容,对手册的内容进行了结构性 的了解,认为有必要对这次阅读的内容进行整理,为以后的工作做准备。 ??? 由于我对这个英文手册的阅读也仅仅是结构性的。因此有很多地方并没有看,所以这篇文档的内容我也只能写出部分,对于以后需要详细了解的地方,会再往这篇文档中增添内容,需要增添的内容主要是编译器的各种开关。 2. GCC功能介绍 ??? GCC编译器完成从C、C++、objective-C等源文件向运行在特定CPU硬件上的目标代码的转换(这是任何一个编译器需要完成的任务)。 ??? GCC能够处理的源文件分为C、C++、Objective-C、汇编语言等。对于这些源文件,用他们的后缀名进行标示。GCC能够处理的后缀有: a. *.c? *.C????? (C语言) b. *.cxx?? *.cc? (C++语言) c. *.m?????????? (面向对象的C) d. *.i?????????? (预处理后的C语言源文件) e. *.ii????????? (预处理后的C++语言源文件) f. *.s *.S?????? (汇编语言) h. *.h???????? (头文件) 目标文件可以是: a. *.o???? 编译连接后的目标文件 b. *.a???? 库文件 编译器把编译生成目标代码的任务分为以下4步: a.预处理,把预处理命令扫描处理完毕; b.编译,把预处理后的结果编译成汇编或者目标模块; c.汇编,把编译出来的结果汇编成具体CPU上的目标代码模块; d.连接,把多个目标代码模块连接生成一个大的目标模块; 3.? GCC开关 ??? GCC的运行开关共分为11类,这是类开关从11个方面控制着GCC程序的运行,以达到特定的编译目的。 3.1.? 全局开关(OVERALL OPTIONS) ??? 全局开关用来控制在“GCC功能介绍”中的GCC的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在 某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如拟的目的是为了看某个CPU上的汇编语言怎么写)。 3.1.1.? –x? language ??? 对于源文件是用什么语言编写的,可以通过文件名的后缀来标示,也可以用这开关。指定输入文件是什么语言编写的,language 可以是如下的内容 a.? c b. objective-c c. c-header d. c++ e.cpp-output f.assembler g.assembler-with-cpp 3.1.2.–x none 把上一节介绍的-x开关都给关掉了。 3.1.3.? –c 编译成把源文件目标代码,不做连接的动作。 3.1.4. –S 把源文件编译成汇编代码,不做汇编和连接的动作。 3.1.5. –E 只把源文件进行预处理之后的结果输出来。不做编译,汇编,连接的动作。 3.1.6.? –o file 指明输出文件名是file。 3.1.7. –v 把整个编译过程的输出信息都给打印出来。 3.1.8.–pipe 由于gcc的工作分为好几步才完成,所以需要在过程中生成临时文件,使用-pipe就是用管道替换临时文件。 3.2.? 语言相关开关(Language Options) 用来处理和语言相关的控制开关。 3.2.1.–ansi ??? 这个开关让GCC编译器把所有的gnu的编译器特性都给关掉,让你的程序可以和ansi标准兼容。 ??? 除了以上的开关外,语言相关开关还有很多,如果在以后的工作学习中遇到了再加不迟!3.3.预处理开关(Preprocessor Options) 用来控制预处理所设置的开关。 3.3.1. –include file ??? 在编译之前,把file包含进去,相当于在所有编译的源文件最前面加入了一个#include file语句,这样做更“省油”。 3.3.2. –imacros file ??? 同-include file 一样。不过这个文件在具体编译的时候只有里面定义的宏才起作用,所以值用来在file文件里面定义宏。 3.3.3. –nostdinc ??? 在搜寻include 的文件路径中去掉标准的c语言头文件搜索路径,例如stdio.h文件就是放在标准头文件搜索路径下。 3.3.4.?

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档