美文网首页
1.c语言编译过程

1.c语言编译过程

作者: 飞行员舒克_ed03 | 来源:发表于2020-08-19 19:00 被阅读0次

4个步骤:

Preprocessing预处理阶段:

即完成宏定义和include 文件展开等工作;生成.i文件。
GCC命令为:·gcc -E

Compilation编译:

根据编译参数进行不同程序的优化,编译成汇编代码;生成.s文件。
GCC命令为:·gcc -S

Assemble汇编:

用汇编器把上一阶段生成的汇编代码进一步生成目标代码;生成.o文件。
一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。
GCC命令为:·gcc -C

Linking链接:

用链接器把上一阶段生成的目标代码、其他一些相关的系统提供的目标代码(如crtx.o)和系统或用户提供的库链接起来,生成最终的执行代码。生成可执行文件。
链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(LibraryFile),也就是 .lib文件,在UNIX下,是Archive File,也就是.a文件。
GCC命令为: ar cr libstatic.a add.o sub.o

helloword.c -> .i -> .s -> .o

文件扩展名 文件类型
.c C语言代码
.C、 .cc C++语言代码
.i 预处理后的C语言代码
.s、.S 汇编语言代码
.o 目标代码
.a 静态链接库(程序编译时使用)
.so 动态链接库(程序运行时使用)

编译的命令是gcc。大项目的构建就需要用到make命令和makefile文件。

相关文章

网友评论

      本文标题:1.c语言编译过程

      本文链接:https://www.haomeiwen.com/subject/mnydjktx.html