- 9
- 0
- 约7.25千字
- 约 17页
- 2016-03-12 发布于山西
- 举报
gcc基础知识
GCC 编译器介绍
GCC 已经不仅仅能支持C语言;它现在还支
持Ada 语言,C++语言,Java 语言,
Objective C语言,Pascal语言,COBOL语言,
以及支持函数式编程和逻辑编程的Mercury
语言,等等。
GCC 是一个交叉平台的编译器,目前支持几
乎所有主流CPU 处理器平台,它可以完成从
C、C++、objective-C等源文件向运行在特
定CPU硬件上的目标代码的转换,GCC不仅功
能非常强大,结构也异常灵活,便携性
(portable)与跨平台支持
(cross-platform support)特性是GCC的
显著优点,目前,GCC编译器所能够支持的
源程序的格式如表3.6 所示。
.c C 语言源程序
.a 由目标文件构成的档案库文件
.C;;cc;.cxx C++源程序
.h 源程序包含的头文件
.i 经过预处理的C 程序
.ii 经过预处理的C++程序
.m Objective-C 源程序
.o 编译后的目标文件
.s 汇编语言源程序
.S 经过预编译的汇编程序
GCC 是一组编译工具的总称,其软件包里包
含众多的工具,按其类型,主要有以下的分
类。
① C编译器cc, cc1, cc1plus, gcc
② C++编译器c++, cc1plus, g++
③ 源码预处理程序cpp, cpp0
④ 库文件libgcc.a, libgcc_eh.a,
libgcc_s.so, libiberty.a,
libstdc++.[a,so], libsupc++.a
用GCC 编译程序生成可执行文件有时候看
起来似乎仅通过编译一步就完成了,但事实
上,使用GCC编译工具由C语言源程序生成可
执行文件的过程并不单单是一个编译的过
程,而要经过下面的几个过程。
·预处理(Pre-Processing)
·编译(Compiling)
·汇编(Assembling)
·链接(Linking)
在实际编译的时候,GCC首先调用cpp命令进
行预处理,主要实现对源代码编译前的预处
理,比如将源代码中指定的头文件包含进来。
接着调用cc1 命令进行编译,作为整个编译
过程的一个中间步骤,该过程会将源代码翻
译生成汇编代码。汇编过程是针对汇编语言
的步骤,调用as 命令进行工作,生成扩展
名为.o 的目标文件,当所有的目标文件都
生成之后,GCC就调用链接器ld来完成最后
的关键性工作——链接。
GCC 编译选项解析
GCC是Linux 下基于命令行的c语言编译器,
其基本的使用语法如下。
gcc [option | filename ]…
对于编译C++的源程序,其基本的语法如下。
g++ [ option | filename ]…
其中option 为GCC 使用时的选项(后面会
再详述),而filename 为需要用GCC 作编
译处理的文件名。就GCC 来说,其本身是一
个十分复杂的命令,合理地使用其命令选项
可以有效提高程序的编译效率、优化代码,
GCC拥有众多的命令选项,有超过100 个的
编译选项可用,按其应用有如下的分类。
常用编译选项
·-c 选项:这是GCC 命令的常用选项。-c
选项告诉GCC 仅把源程序编译为目标代码
而并不做链接的工作,所以采用该选项的编
译指令不会生成最终的可执行程序,而是生
成一个与源程序文件名相同的以
您可能关注的文档
- c语言深度解剖(完美高清文字版).pdf
- dcfw-1800ges防火墙快速配置手册--for v3x版本.pdf
- ebox-2300_wifi_installation.pdf
- fortigate防火墙安全配置规范.pdf
- fbi秘籍:如何读懂肢体语言(图文原版).pdf
- gartner如何定义下一代防火墙-sinogrid.pdf
- freelink wifi hdmi 无线媒体分享器使用说明书.pdf
- gbt1.1-2009培训教材(福建标准院内部培训教材).pdf
- gcc hacks in the linux kernel.pdf
- gcc internals and porting.pdf
原创力文档

文档评论(0)