程序的编译过程
在使用gcc编译时,编译的过程可以分为4个阶段:
(1)预处理:主要处理源文件中的#ifdef,#include,#define预处理命令,该阶段会生成一个中间文件*.i
gcc -E test.c -o test.i
(2)编译:编译阶段输入的是中间文件*.i,编译后生成汇编语言文件*.s。
gcc -S test.i -o test.s
(3)汇编:汇编阶段将输入的汇编文件*.s转换为二进制机器代码*.o。
gcc -c test.s -o test.o
(4)链接:将*.o文件汇集成一个可执行的二进制代码文件
gcc test.o -o test
最终生成可执行文件test
也可以直接使用一条命令
gcc test.c -o test
gcc的常用选项
在实际开发中,使用gcc编译源程序时,源文件不止一个,使用gcc编译多个原文件:
gcc -o test testmain.c other.c
该命令同时编译2个源文件testmain.c ,other.c,最终生成一个可执行程序test。