gpt4 book ai didi

linux - 链接器是否在静态链接文件中包含 libc.so.6?

转载 作者:太空狗 更新时间:2023-10-29 12:06:26 25 4
gpt4 key购买 nike

当我动态链接可执行的 elf 文件时,它需要 libc.so.6 共享库。当我静态链接可执行的 elf 文件时,它不需要 libc.so.6 共享库(这并不奇怪)。

这是否意味着,要使用--static 组合可执行文件,链接器会在其中包含libc.so.6?如果不是 - 链接器包含什么文件?我在哪里可以搜索它?据我所知,链接器在静态组装文件中包含静态库。

最佳答案

如果您链接为静态,链接器将从静态库 (.a) 链接所有需要的对象 (.o) 文件。例如,以下命令列出了 libc6 库中包含的目标文件:

ar t /usr/lib/libc.a

(libc.a 的确切路径当然因系统而异)

所以对您的问题的回答是否定的,它不会链接整个 libc6 库,而只会链接所需的目标文件。而且,它不会对 libc.so.6 做任何事情,因为这仅用于动态链接。它适用于 libc.a - 库的静态版本。

根据@janneb 的评论,要链接的最小单元是“节”,因此它甚至可能不需要链接整个目标文件。

关于linux - 链接器是否在静态链接文件中包含 libc.so.6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com