熟悉ar的来给讲讲吧,我有点儿不明白。

发布于 2022-09-17 19:44:43 字数 166 浏览 8 评论 5

ld是o为单位的,ar是把几个o打包在一起(具体怎么回事儿我不知道,知道就不困惑了),那么静态链接的时候,ld是把一个o都复制过去啊,还是只复制一个func啊?因为binutils的核心是bfd,bfd的接口都是section的,我想是把整个o都复制过去,又不确定,还有ar的原理也不明白。
牛群啊,你出来吧,我是冯巩。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

夏夜暖风 2022-09-20 09:30:49

整个O过去,那链接是快,可生成的质量太糟了。
大的没试过,曾试过一单片机的。因为单片机特讲究内存空间,试过,只链接调用的那个函数的目的码。

月依秋水 2022-09-20 09:11:23

扯淡!ld就是以o为单位的,bfd只提供section的信息。
ar文件头索引出哪个符号在哪个.o,然后ld去copy这个o过去。

凯凯我们等你回来 2022-09-20 08:08:15

学习下

掀纱窥君容 2022-09-20 04:58:32

回复 1# prolj
静态链接只链接调用的函数

掐死时间 2022-09-19 16:01:47

一个o都复制过去

ar 就是把所有的.o简单拼接在一起打包

ar文件的头部还可以创建一个索引,指出哪个符号在哪个.o文件中,这样可以加快链接速度

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文