摘要
介绍
图
预处理
将C源代码中的包含的头文件如stdio.h添加进来
编译
检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言
gcc –S hello.i –o hello.s
汇编
把编译阶段生成的”.s”文件转成二进制目标代码“.o”文件
gcc –c hello.s –o hello.o
链接
过程
- 预处理
- 编译
- 汇编
- 链接
1. 预处理/预编译 Pre-processing
生成.i、.ii文件
- 文件包含#include
- 优先查找 #include “” ,若成功则遮蔽 #include <> 同名文件
- 递归
- 文件内容全部拷贝
- 宏替换#define
- 条件编译#ifndef
- 布局控制 #pragma
- 设定编译器状态
- 指示编译器完成特定动作
- 删注释
- 添加行号、文件标识符——显示调试信息
- 预定义符号
- FILE 源文件名
- LINE 当前行号
- DATE、TIME 文件被编译日期、时间
- STDC
引入头文件include
宏替换define
生成:gcc -E XXX.c XXX.i
查看:cat XXX.i