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三剑客