下载此文档

GCC使用手册.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
GCC使用手册
作者:Clock
 

    GCC编译器的手册(GCC MANUAL)的英文版已经非常全面,并且结构也非常完善了,只是一直都没有中文的版本,编译器的主要内容,对手册的内容进行了结构性的了解,认为有必要对这次阅读的内容进行整理,为以后的工作做准备。
    由于我对这个英文手册的阅读也仅仅是结构性的。因此有很多地方并没有看,所以这篇文档的内容我也只能写出部分,对于以后需要详细了解的地方,会再往这篇文档中增添内容,需要增添的内容主要是编译器的各种开关。
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步:
,把预处理命令扫描处理完毕;
,把预处理后的结果编译成汇编或者目标模块;
,把编译出来的结果汇编成具体CPU上的目标代码模块;
,把多个目标代码模块连接生成一个大的目标模块;
3.  GCC开关
    GCC的运行开关共分为11类,程序的运行,以达到特定的编译目的。
.  全局开关(OVERALL OPTIONS)
    全局开关用来控制在“GCC功能介绍”的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如拟的目的是为了看某个CPU上的汇编语言怎么写)。
.  –x  language
    对于源文件是用什么语言编写的,可以通过文件名的后缀来标示,也可以用这开关。指定输入文件是什么语言编写的,language 可以是如下的内容
a.  c
b. objective-c
c. c-header
d. c++
-output

-with-cpp
.–x none
把上一节介绍的-x开关都给关掉了。
.  –c
编译成把源文件目标代码,不做连接的动作。
. –S
把源文件编译成汇编代码,不做汇编和连接的动作。
. –E
只把源文件进行预处理之后的结果输出来。不做编译,汇编,连接的动作。
.  –o file
指明输出文件名是file。
. –v
把整个编译过程的输出信息都给打印出来。
.–pipe
的工作分为好几步才完成,所以需要在过程中生成临时文件,使用-pipe就是用管道替换临时文件。
.  语言相关开关(Language Options)
用来处理和语言相关的控制开关。
.–ansi
    编译器把所有的gnu的编译器特性都给关掉,让你的程序可以和ansi标准兼容。
    除了以上的开关外,语言相关开关还有很多,如果在以后的工作学习中遇到了再加不迟!(Preprocessor Options)
用来控制预处理所设置的开关。
. –include file
    在编译之前,把file包含进去,相当于在所有编译的源文件最前面加入了一个#include <file>语句,这样做更“省油”。
. –imacros file
    同-include file 一样。不过这个文件在具体编译的时候只有里面定义的宏才起作用,所以值用来在file文件里面定义宏。
. –nostdinc
    在搜寻include 的文件路径中去掉标准的c语言头文件搜索路径,。
.  –nostdinc++
    同上,只是去掉

GCC使用手册 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zbfc1172
  • 文件大小78 KB
  • 时间2018-06-02