一、C代码编译成可执行程序经过4步:
1 预处理:
宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。
2 编译:
检查语法,将预处理后文件编译生成汇编文件
3 汇编:
将汇编文件生成目标文件(二进制文件)。
4 链接:
C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
二、gcc编译过程
文件格式一定要改成ANSI,不然可能会乱码。
1. 分步编译
使用示例: 指令区 A B C
预处理: gcc -E hello.c -o hello.i 指令区 解步编译所用的命令
编 译: gcc -S hello.i -o hello.s A 原文件路径及名称(可为多个文件)
汇 编: gcc -c hello.s -o hello.o B 转换符
链 接: gcc hello.o -o hello C 输出文件路径及名称
说明
选项 含义
-E 只进行预处理
-S(大写) 只进行预处理和编译
-c(小写) 只进行预处理、编译和汇编
-o file 指定生成的输出文件名为 file
文件后缀 含义
.c C 语言文件
.i 预处理后的 C 语言文件
.s 编译后的汇编文件
.o 编译后的目标文件