GCC的简单介绍

本文详细介绍了GCC编译器的工作原理和使用,包括预处理、编译、汇编和链接四个步骤,以及GCC的常用选项如-c、-S、-E、-o、-I、-L等。此外,文章还涵盖了GCC的代码优化选项、调试选项、头文件搜索路径和库连接,强调了-GCC在编译过程中的灵活性和跨平台支持。
摘要由CSDN通过智能技术生成

一、GCC编译器介绍

       GCC是GNU项目的编译器组件之一,也是GNU最具有代表性的作品。在GCC设计之初仅仅作为一个C语言的编译器,可是经过十多年的发展,GCC已经不仅仅能支持C语言;它现在还支持Ada语言、C++语言、Java语言、Objective C语言,Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言,等等。而GCC也不再单是GNU C Compiler的意思,而是GNU Compiler Collection也即是GNU编译器家族的意思了,目前已经成为Linux下最重要的编译工具之一。

  GCC是一个交叉平台的编译器,目前支持几乎所有主流CPU处理器平台,它可以完成从C、C++、Objective C等源文件向运行在特定cpu硬件上的目标代码的转换,GCC不仅功能非常强大,结构也异常灵活,便携性(protable)与跨平台支持(cross-plantform. support)特性是GCC的显着优点,目前编译器所能支持的源程序的格式如下表所示。

GCC所支持的源程序格式

后缀格式

说明

.c

C语言程序

.a

由目标文件构成的档案文件

.C、cc、cxx

C++源程序

.h

源程序所包含的头文件

.i

经过预处理的C程序

.ii

经过预处理的C++程序

.m

Objective-C源程序

.o

编译后的目标文件

.s

汇编语言源程序

.S

经过预编译的汇编程序

  GCC是一组编译工具的总称,其软件包里包含众多的工具,按其类型,主要有以下的分类。

  C编译器cc,cc1,cc1 plus,gcc

  C++编译器c++,cc1 plus,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语言编译器,其基本的使用语法如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值