一个程序从.c文本文件成为一个可执行文件需要进行四个过程。
一:预编译过程,.c文件经过预编译成为.i文件。预编译过程主要处理源代码文件中那些以“#”开头的预编译指令,如#include,#define等。
linux环境下的指令为:gcc -E main.c -o main.i 。
主要处理规则为:
1.展开所有的宏定义;
2.处理#if,#endif等预编译指令;
3.将#include<>包含的文件插入到相应位置;
4.删除所有的注释;
5.添加行号和文件名标识;
6.保留所有的#pragma编译器指令。
二:编译过程,.i文件经过编译成为.s文件。编译过程形成的是汇编文件。
linux环境下的指令为:gcc -S main.i -o main.s 。
三:汇编过程,.i文件经过该过程成为.o目标文件,目标文件里都是机器可以理解的二进制代码。
linux环境下的指令为:gcc -c main.s -o main.o 。
四:链接过程,.o文件经过链接才能形成最终的可执行文件。
linux环境下的指令为:gcc -o main main.o 。

Logo

更多推荐