C语言编译过程&gcc编译参数

我们一般使用命令:

gcc main.c

把main.c生成可执行文件a.out

gcc helloWorld.c可分解成以下四个步骤:

预处理(Preprocessing)

gcc -E main.c -o main.i

预处理的过程主要处理包括以下过程:

处理#include预编译指令,将被包含的文件插入到该预编译指令的位置.

处理所有的条件预编译指令(#if #ifdef #elif #else #endif等等),并且展开所有的宏定义.

删除所有注释

编译(Compilation)

gcc –S main.i –o main.s

编译过程就是把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后生成相应的汇编代码

汇编(Assembly)

gcc –c main.c –o main.o

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令.

链接(Linking)

gcc -o main main.o

链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件。

你可能感兴趣的:(C语言编译过程&gcc编译参数)