“ ld”和“ ld.so”之间的区别?


8

虽然两者都称为“链接器”并用于链接二进制文件,但我无法真正弄清楚它们之间的区别。谁能告诉我他们的区别?

Answers:


8

不用太技术性:两者都是“链接器”,即一种将一段编译的代码与另一段编译的代码组合/加载到另一段的工具。

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

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.