第四章 Linux 下编译器 GCC

1、什么是 GCC

GCC(GNU Compiler Collection, GNU 编译器套件),是由 GNU 开发的编程语言编译器。它是以 GPL 许可证所发行的自由软件,也是 GNU 计划的关键部分。 GCC 原本作为 GNU 操作系统的官方编译器,现已被大多数类 Unix 操作系统(如 Linux、 BSD、 MacOS X 等)采纳为标准的编译器, GCC 同样适用于微软的 Windows. 目前 GCC 是 Linux 下重要的软件开发工具之一。

2、GCC用来做什么

将高级语言程序转化为可执行文件。

3、GCC 编译程序的步骤有哪些

(1)预处理:展开头文件/宏替换/去掉注释/条件编译

(2)编译:检查语法,生成汇编代码

(3)汇编:把汇编代码转化成二进制的机器码

(4)链接:将源文件中用到的库函数与汇编生成的目标文件.o合并生成可执行文件。

链接详细过程:链接阶段的主要任务就是展开头文件,调用标准链接库里面定义的函数(这些函数是可执行的函数,不能看见源代码),有些函数是静态的去调用,就是直接把函数体写到源文件中,但是有些函数是动态链接的,就是在链接阶段只判断这个函数的存在性,分配一个地址,在执行时再来调用这个函数。

4、常用的指令

不干预时会自动完成,例如下面,四个步骤自动完成生成执行文件 a.out。
linux@ubuntu:~$ gcc main.c

-e 选项:停在预处理阶段,仅做预处理,不再完成后面的步骤。linux@ubuntu:~$ gcc -E main.c > main.i
-S 选项:停止编译阶段,编译后生成.s 为后缀的文件。linux@ubuntu:~$ gcc -S main.c
-c选项:停止汇编阶段,并不做第四步的链接的工作。如下,会生成一个 main.o的文
件。linux@ubuntu:~$ gcc -c main.c
-v 选项: 在 Shell 的提示符号下键入 gcc -v,屏幕上就会显示出目前正在使用的 GCC的版本信息。
-I<DIR>选项:库依赖选项,指定库及头文件路径。
-L<DIR>:类似上面的情况,用来特别指定所依赖库所在的路径。
-static 选项: GCC 在默认情况下链接的是动态库,有时为了把一些函数静态编译到程序中,而无需链接动态库就采用-static 选项,它会强制程序链接静态库。
-o 选项:在默认的状态下,如果 GCC 指令没有指定编译选项的情况下会在当前目录下生成一个名位 a.out 的可执行程序。例如:执行# gcc Main.c 命令之后会生成一个 a.out 的可执行程序。因此,为了指定生成的可执行程序的文件名,就可以采用-o 选项。linux@ubuntu:~$ gcc -o main main.c
 



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值