C语言编译过程
C程序编译步骤
C代码编译成可执行程序经过4步:
- 预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。
- 编译:检查语法,将预处理后文件编译生成汇编文件。
- 汇编:将汇编文件生成目标文件(二进制文件)
- 链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去。
gcc编译过程
分步编译
1 | 预处理: gcc -E hello.c -o hello.i |
选项 | 含义 |
---|---|
-E | 只进行预处理 |
-S(大写) | 只进行预处理和编译 |
-c(小写) | 只进行预处理、编译和汇编 |
-o file | 指定生成的输出文件名为file |
文件后缀 | 含义 |
---|---|
.c | C语言文件 |
.i | 预处理后的C语言文件 |
.s | 编译后的汇编文件 |
.o | 编译后的目标文件 |
常见代码问题
- 编辑时异常
- 编译时异常
- 运行时异常