动态链接vs在运行时加载库

时间:2018-04-10 06:29:50

标签: compilation linker shared-libraries

我正在阅读Mastering Embedded Linux Programming book。见过以下段落:

libjpeg.a: This is the library archive used for static linking
libjpeg.so -> libjpeg.so.8.0.2: This is a symbolic link, used for dynamic linking
libjpeg.so.8 -> libjpeg.so.8.0.2: This is a symbolic link, used when loading the library at runtime
libjpeg.so.8.0.2: This is the actual shared library, used at both compile time and runtime

dynamic linkingloading the library at runtime之间的区别是什么?

1 个答案:

答案 0 :(得分:0)

  

见过以下段落

书籍作者可能很困惑。

除了libjpeg.so之外,没有基本原因,这是一个可用于链接运行时加载的共享库。

所有.so.8.0.2命名和符号链接的原因是外部库版本控制,例如, here

在支持symbol versioning的GNU系统上根本不需要外部版本控制。