GCC入门详解

一、基本概念

gcc编译源程序分为4个阶段:预处理、编译、汇编、链接

1、预处理阶段:将头文件的内容插入到源代码中、替换宏定义、去掉注释等。预处理后的文件后缀名为.i

2、编译阶段:编译器将预处理后的文件翻译成汇编代码文件(后缀名为.s)

3、汇编阶段:汇编器将汇编代码文件转化成二进制目标文件(后缀名为.o)

4、链接阶段:链接器将目标代码文件与实现库函数的代码合并,生成可执行文件(可执行文件在windows中以.exe结尾)

二、命令使用

命令格式:gcc <文件> <选项>

1、直接编译产生可执行文件

选项说明
-o <文件名>在选项-o的后面跟着输出文件名

命令示例:

1. gcc main.c -o hello

gcc分别执行开头说的那四个阶段,生成可执行文件hello(如果不加上-o hello,Unix系统的默认输出文件名是a.out)

2. gcc main.c plus.c -o program (多个文件用空格分开)

gcc将这两个文件编译链接形成可执行文件program

 2、指定生成各阶段的文件

选项说明
-E预处理后的文件(.i)
-S编译后得到的汇编代码文件(.s)
-c汇编后得到的二进制目标文件(.o)

命令示例:

1. gcc main.c -E -o main.i (使用-E选项必须指定输出文件名)

生成main.i文件

2. gcc main.c plus.c -S

生成main.s和plus.s汇编代码文件

3. gcc main.c plus.c -c

生成main.o和plus.o目标文件

执行上面的第一条命令,查看源文件和预处理后的.i文件。可以发现#include "plus.h"被换成了头文件里的内容,宏定义的Pi也已经替换成了3

9f61c9d542a84965b880fcf544b1477b.jpeg

 3、其他常用选项

选项说明
-Wall

生成所有警告信息。(gcc默认只会生成错误信息,不会生错误信息)

-On(n为1到3的数)对代码进行优化(减少程序运行时间和程序大小)(n的数字越大,优化等级越高)
-I指定包含的头文件的路径

还有一些专门用于静态库和动态库的选项,这里就不再列举了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值