Linux编译器——gcc/g++的使用
gcc/g++的编译过程:
首先创建一个可执行文件cde.c。
1.预处理:
-E意思是从现在开始进行程序编译,在预处理做完时就停下来。
进入cde.i,文件由原来的几行变成了好几百行,这是因为头文件在系统当作自带,打开之后发现有九百多行。根本原因就是因为头文件展开,将需要的头文件拷贝到目标文件形成 .i 文件,头文件里面也有它自己的头文件,就会进行不断地递归展开,所以就会变大。预处理完之后头文件就不需要了。
2.编译(把语言变成汇编语言):
-S选项就是告诉编译器从现在开始进行程序的编译直到编译结束时停下。
3.汇编:
cde.o:可重定位目标文件,在win和vs就叫做 .obj。我们的源文件中会包含很多库方法,此时cde.o就已经是一个二进制文件了,但我们的库方法没有和程序联系起来,所以程序无法进行,就需要链接才能形成可执行文件。-c:从现在开始程序开始翻译,直到汇编完成停下。
4.链接: