GCC编译过程
- 预处理(preprocessing)
- 编译(compilation)
- 汇编(assembly)
- 连接(linking)。
我们需要处理的c文件为test.c。
(1)预处理:
gcc -E test.c -o test.i
-E选项可以让编译器在预处理后停止,并输出预处理结果;在此例中预处理结果就是将stdio.h文件中的内容插入test.c中
(2)编译
gcc -S test.i -o test.s
-S选项表示在程序编译期间,在生成汇编代码后停止。
(3)汇编
gcc -c test.s -o test.o
gas汇编器负责将其编译为目标文件
(4)连接
gcc test.o -o test
gcc连接器负责将程序的目标文件与所需的所有附加目标文件(静态和动态连接库)连接起来,最终生成可执行文件。
一步到位的编译指令是
gcc test.c -o test
多个程序文件的编译
gcc test1.c test2.c -o test