gcc的基本使用

GCC是Linux系统中最为著名得编译器,它是由Richard Stallman在1984年编写的。

 1、GCC基础

    由于GCC支持多种语言,因此GCC能够支持多种文件后缀的编译

后缀名

意义

.c

C源文件

.C/.cpp/.cc/.cxx

C++源文件

.h

头文件

.m

Object C源文件

.i

已经预处理过的C源文件

.ii

已经预处理过的C++源文件

.s

汇编语言源文件

.o

目标源文件

.a

编译后得静态库文件

.so

编译后得动态库文件

 

2、GCC的编译方式

       GCC指令得一般格式:

       gcc [选项] 源文件名 [选项] 目标文件名

       ◆采用默认得方式编译源文件,系统会生成a.out可执行文件

       ◆采用显式编译成目标文件,在编译成可执行文件

          gcc -c hello.c

          gcc -o hello hello.o

       ◆直接编译成可执行文件

          gcc -o hello hello.c

    3、GCC编译流程

    编译器的输入是程序的源文件,输出是可执行得文件或者可分发得二进制代码,中间过程便是编译器要完成得工作。其程序得编译流程为:

                   程序的编译流程图

     事实上编译器也是按照上图中的流程来进行编译的,分为四个步骤:

     ◆预处理

     本阶段是针对头文件(.h)进行编译,即将这些头文件编译到当前源文件中,预处理常用得选项是-E,它的作用是告诉编译器,当预处理结束后停止编译。

主要工作:

    ①展开头文件。

    ②进行宏替换。

    预处理的输入是.c文件,输出是.i文件

    命令:gcc -E 源文件 -o 目标文件

    ◆编译

    本阶段是对代码得规范性,语法得正确性进行检查,并编译成汇编语言。编译常用的选项是-S,它的作用是告诉编译器,当编译结束时,停止编译。

主要工作:

    ①检查语法。

    ②生成汇编文件

     编译的输入是.i文件,输出是.s文件

     命令:gcc -S源文件 -o  目标文件

     ◆汇编

      本阶段是将汇编语言翻译成目标文件,汇编常用的选项是-c,它的作用是告诉编译器,当汇编阶段结束时停止编译。

主要工作:

    ①生成二进制文件。

      汇编的输入是.s文件,输出是.o文件

      命令:gcc -c 源文件 -o 目标文件

     ◆链接

     本阶段是将所有的目标文件以及相应的库文件编译成可执行文件,链接并不需要选项,只需要制定生成的可执行文件名。

      链接的输入是.o文件,输出是可执行文件

      命令:gcc 源文件 -o 目标文件

 

     4、GCC命令分类

      GCC有12类选项,分别是总体选项、语言选项、预处理选项、汇编器选项、链接器选项、目录选项、警告选项、调试选项、优化选项、目标选项、机器相关选项、代码生成选项。

      ◆总体选项

       总体选项是GCC中最常用的选项

参数名

意义

-E

只进行预处理

-c

将源文件生成目标文件

-S

生成汇编文件

-o outfile

输出的结果放到outfile文件中

-g

在可执行程序中添加调试代码

-v

打印出编译器编译过程中的信息

-static

静态链接库

-llibrary

链接名为library得库文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值