GCC 编译过程分析

获取更多嵌入式、Linux学习资料,获取独家嵌入式Linux学习路线地图,欢迎加群:398294860,观看更专业、更系统地嵌入式视频教程,请关注:wanglitao.taobao.com

以hello.c为例:从一个C语言源文件,到生成最后的可执行文件,GCC编译过程的基本流程如下:

  • C 源文件: 编写一个简单的hello world程序
  • 预处理:生成预处理后的C源文件 hello.i
  • 编译:将C源文件翻译成汇编文件 hello.s
  • 汇编:将汇编文件汇编成目标文件 hello.o
  • 链接:将目标文件链接成可执行文件

gcc命令是GCC编译器里的一个前端程序,用来控制整个编译过程:分别调用预处理器、编译器和汇编器,完成编译的每一个过程,最后调用链接器,生成可执行文件:a.out

默认情况下,gcc命令会自动完成上述的整个编译过程。当然,gcc还提供了一系列参数,使用这个参数,可以让用户精准控制每一个编译过程。

  • -E :只做预处理,不编译
  • -S :只编译,将C程序编译为汇编文件
  • -c :只汇编,不链接。
  • -o :指定输出的文件名
《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客