首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'ld‘和'ld.so’之间的区别?

'ld‘和'ld.so’之间的区别?
EN

Unix & Linux用户
提问于 2017-04-08 04:53:35
回答 1查看 5.5K关注 0票数 13

虽然两者都被称为“链接器”,并用于链接二进制文件,但我不知道它们之间有何不同。有人能告诉我他们的不同之处吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-04-08 07:34:02

两者都是“链接器”,即将一段编译代码与另一段编译代码结合/加载到另一段编译代码中。

ld是一个静态链接器,而ld.so是一个动态链接器。

我相信,字母so是“共享对象”的缩写,您通常会看到它是共享库的文件名后缀,即可以动态链接到程序中的库(一个库在多个程序之间“共享”)。相反,静态库的文件名通常为.a,用于“归档”(由ar实用程序创建)。

静态链接器在编译时链接程序或库,通常作为编译过程的最后一步,创建二进制可执行文件或库。对于二进制可执行文件,它可能是静态二进制文件,所有库都加载到二进制文件中,也可能是动态链接的二进制文件,只有一些库静态链接。

动态链接器在运行时将编译时动态链接的库加载到进程的地址空间。

请参阅系统上的ldld.so手册。

票数 18
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/356709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档