C语言编译怎样连接lib文件,请讲解连接的原理,

 我来答
百度网友313c152
推荐于2016-02-11 · TA获得超过162个赞
知道答主
回答量:109
采纳率:0%
帮助的人:41.7万
展开全部
广义的代码编译过程,实际上应该细分为:预处理,编译,汇编,链接。

预处理过程,负责头文件展开,宏替换,条件编译的选择,删除注释等工作。gcc –E表示进行预处理。

编译过程,负载将预处理生成的文件,经过词法分析,语法分析,语义分析及优化后生成汇编文件。gcc –S表示进行编译。

汇编,是将汇编代码转换为机器可执行指令的过程。通过使用gcc –C或者as命令完成。

链接,负载根据目标文件及所需的库文件产生最终的可执行文件。链接主要解决了模块间的相互引用的问题,分为地址和空间分配,符号解析和重定位几个步骤。实
际上在编译阶段生成目标文件时,会暂时搁置那些外部引用,而这些外部引用就是在链接时进行确定的。链接器在链接时,会根据符号名称去相应模块中寻找对应符
号。待符号确定之后,链接器会重写之前那些未确定的符号的地址,这个过程就是重定位。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式