重定位目标文件,链接

    源文件被编译汇编成可重定位目标文件,文件包含数据区,代码区,符号表等。符号表表示源文件中变量和函数在各自区中的位置,所占大小等信息。目标文件中的符号可引用其他可重定位目标文件中的符号,在连接器解析符号的时候对这些符号进行联系。

 目标文件也可以叫做模块,由函数和变量集合组成。

静态链接库里由很多模块组成,且每个模块只有一个函数组成。一个模块调用静态链接库,不会把链接库里的所有模块都链接起来,只会链接用到的目标模块,减少了最终可执行文件的内存大小符号解析过程:解析每个输入模块,把未定义的符号放入U,定义的符号放入D,如果输入模块中的符号是定义U中的符号,则把该符号放入D。最后U为空则链接成功。静态链接库是把库的函数载入嵌套在最后的可执行文件中,而动态链接库是在源程序中调用动态链接函数dlope,dlsym,dlclos,该函数来获得动态链接库里用到的函数指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值