程序写完生成.c文件后到生成可执行的.exe大体上需要两个步骤,分别是编译和链接
编译:
一共包含三步:
1.预编译
首先会对头文件进行处理,例如将#inlcude进行翻译。
同时替换宏定义,删掉注释
最后生成.i文件.
2.编译
将c语言转换成汇编代码
同时进行,语法分析,词法分析,词义分析,符号汇总。
最后生成.s文件
3.汇编
将汇编指令翻译成二进制语言,同时形成符号表
(符号表:会对文件中的全局变量和函数编排上符号和地址,对于调用了但没有定义的函数暂时附上一个临时地址,每个文件是单独进行编排的)
最后生成.o文件
链接
1.合并段表
2.调用不同的链接库
3.将符号表合并重新定位,就是用有效地址将临时地址替换下,将不同的文件链接起来
最后生成.exe文件