日期:2014-05-16 浏览次数:20775 次
soname for a shared library:
lib <library name> .so. <major ver>
?
fully-qualified soname for a shared library:
<path> /lib <library name> .so. <major ver>
?
real name for a shared library:
lib <library name> .so. <major ver> . <minor ver> . <release>
?
linker name for a shared library:
lib <library name> .so
?
一般soname对应的是一个符号链接,是在运行ldconfig时由其根据共享库header中的SONAME域创建的。如果创建共享库时未通过-Wl,-soname,...指定其SONAME,则ldconfig不会为其创建对应的soname符号链接。linker name对应的符号链接主要用于开发链接使用,一般是创建一个指向soname而不是real name的链接,以便减少版本更替时需要改变的链接数量(当然共享库数量较少时指向soname或real name均可,系统软件包也是两种方式都有采用的例子)。
?
<major ver>主要表明接口ABI兼容性,一般如果共享库接口产生了非向前兼容的更改就要升级<major ver>。