4
SO(共享对象)编号如何工作?
我知道Linux下的共享库使用“ so数字”,即共享库的不同版本具有不同的扩展名,例如: example.so.1 example.so.2 我的想法是要有两个不同的文件,以便在系统上可以存在一个库的两个版本(与Windows上的“ DLL Hell”相对)。我想知道这在实际中如何运作?通常情况下,我看到example.so其实是一个符号链接到example.so.2这里.2是最新版本。然后,如何根据旧版本的应用程序example.so正确识别它?关于必须使用什么数字有任何规定吗?还是这仅仅是约定?是否与Windows在系统之间传输软件二进制文件的情况不同,如果系统具有共享对象的较新版本,则从源代码进行编译时会自动链接到较旧的版本? 我怀疑这是有关的,ldconfig但我不确定如何。
123
linux
dynamic-linking