GCC

如果用vim写代码的话,建议在终端中打开输入vi /etc/vim/vimrc,如
在这里插入图片描述

在最后面加上
set ts=4
set num,如
在这里插入图片描述

GCC编译器驱动程序读取源文件(如 hello.c),并把它翻译成一个可执行目标文件(hello)。这个翻译过程可分为四个阶段完成,如下:

  • 预处理阶段
    预处理器(cpp)根据以字符#开头的命令,修改原始的C程序。如#include<stdio.h>告诉预处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中。结果就得到了另一个C程序,通常以.i作为文件扩展名。
  • 编译阶段
    编译器(ccl)将文本文件hello.i翻译成文本文件hello.s,它包含一个汇编语言程序。
  • 汇编阶段
    接下来,汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o文件中。hello.o文件是一个二进制文本。如果我们打开hello.o文件,将看到一堆乱码。如下所示:
    在这里插入图片描述
  • 链接阶段
    hello程序调用了printf函数,它是每个C编译器都提供的标准C库中的一个函数。printf函数存在于一个名为printf.o的单独的预编译好了的目标文件中,而这个文件必须以某种方式合并到我们的hello.o程序中。链接器(ld)就负责处理这种合并。结果就得到hello文件,它是一个可执行目标文件,可以被加载到内存中,由系统执行。

GCC使用

GCC基本语法:gcc [options] [filenames]
其中options是编译器所需要的参数,filenames是相关的文件名称。

-c 只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。如:
在这里插入图片描述

-o output_filename,确定输出文件名称为out_filename,如果不给出这个选项(-o),gcc就给出预设的可执行文件a.out。如:
在这里插入图片描述
-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,想要对源代码调试,就必须加入这个选项。

-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、链接,当然整个编译、链接过程会更慢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值