複習Linux ELF共享庫版本概念

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>。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章