一步步学好Linux开发之gcc的程序编绎

1      gcc基本用法
gcc [options] filenames
options:编绎器所需要的编绎选项(这个可选可不选)
filenames:要编绎的文件名


2    gcc的编绎过程分为4个阶段
(1)预处理     hello.c->hello.i   命令  gcc -E hello.c -o hello.i(将宏,头文件展开等等)
 (2)编绎         hello.i->hello.s   命令 gcc - S hello.i -o hello.s  (将预处理后的文件变成汇编文件)
 (3)汇编        hello.i->hello.o    命令 gcc -c  hello.i -o hello.o   (将汇编文件变成二进制文件)
   ( 4 )   链接        hello.o->hello       命令 gcc  hello.i - o hello        (将二进制文件(hello.o与库(如C函数库)链接)变成可执行文件)
注意,以上的各步可以直接由任意一步跳到任意一步,可以不用按照每步的顺序


3   Gcc通过后缀来区别输入文件的类别,常见类型有:
    v .c为后缀的文件: C语言源代码文件
    v .a为后缀的文件: 是由目标文件构成的库文件     (这个比较不清楚)
    v .C,.cc或.cxx 为后缀的文件: 是C++源代码文件
    v .h为后缀的文件: 头文件
    v .o为后缀的文件: 是汇编后的目标文件                    (这个比较不清楚)
    v .s为后缀的文件: 是汇编语言源代码文件


4编绎选项
 -O 和 -O2 进行优化 (time ./a.out可以得到执行所需的时间)


-g   使程序可以被(gdb等)调试


-I  (大写的i)         #include <A.h>
#include “B.h”
对于<>,gcc在系统预设的头文件目录(如LINUX下的/usr/include)中搜寻
相应的文件;而对于””,gcc在当前目录中搜寻头文件。-I选
gcc 项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,
就到指定的dirname目录中去寻找。


-w 将所有的警告都忽略,不打印
-Wall 将所有的警告都打印出来,比不加Wall时多


-D宏的名字             在编绎时加上这个,相当于在程序中加上了#define 宏的名字(表示宏已定义)


-Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值