1、GCC简介:https://zh.wikipedia.org/wiki/GCC
2、简单编译
如有以下c程序,命名为test.c
#include <stdio.h> int main(){ printf("hello wow ~\n"); return 0; }
简单编译命令是:
gcc test.c -o test
现在我们将其分解为四个步骤:
2.1预处理
gcc -E test.c -o test.i gcc -E test.c
2.2编译为汇编代码(Compilation)
gcc -S test.i -o test.s
2.3汇编(Assembly)
gcc -c test.s -o test.o
gas汇编器负责将其编译为目标文件
2.4连接(Linking)
gcc test.o -o test
gcc连接器是gas提供的,负责将程序的目标与所需的所有附加目标文件连接起来,最终生成可执行文件。附加的文件包括静态连接库和动态连接库。
2.5执行
./test
3、多个程序文件的编译
通常整个文件是由多个源文件组成的,相应地也就形成了多个编译单元,使用gcc能够很好的管理这些编译单元。假如有一个由test1.c,test2.c连个源文件组成的程序,为了对它们进行编译,并最终生成可执行文件test,可以使用如下命令:
gcc -c test1.c test2.c -o test
它相当于gcc依次执行下面三条语句:
gcc -c test1.c -o test1.o gcc -c test2.c -o test2.o gcc test1.o test2.o -o test