1. 背景知识
1. 预处理(进行宏替换)
2. 编译(生成汇编)
3. 汇编(生成机器可识别代码)
4. 连接(生成可执行文件或库文件)
2. gcc如何完成编译汇编的工作
格式:gcc [选项] 要编译的文件 [选项] [目标文件]
程序翻译的过程可以分为预处理 ,编译,汇编,链接四个过程,从最开始的源文件到最后的可执行程序。
预处理
预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
预处理指令是以#号开头的代码行。
选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。
举例:
[shadow@VM-4-4-centos practice_7_28]$ gcc -E test.c -o test.i
对比一下test.c文件和test.i文件

由于包含了头文件,所以在预处理之后多了八百多行的代码
编译
在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。

本文详细介绍了Linux环境下gcc编译器的工作流程,包括预处理、编译、汇编和链接四个步骤,同时探讨了函数库(静态库与动态库)的作用。还列举了gcc常用编译选项,如-E、-S、-c、-o和-static等,帮助读者掌握gcc的使用技巧。
最低0.47元/天 解锁文章
1590





