我们一般使用命令:
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
链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件。