Krátká verze je, že to uděláte přes soname knihovny. Přečtěte si kapitolu 3 na http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html a také kapitolu 3.3 Verze ABI na http://www.akkadia.org/drepper/dsohowto.pdf
Linux používá následující strategii – vy (správce systému) poskytujete symbolické odkazy ze „specifického“ souboru sdílené knihovny, jako je tento:
lrwxrwxrwx 1 root root 16 2011-09-22 14:36 libieee1284.so -> libieee1284.so.3
lrwxrwxrwx 1 root root 20 2011-09-22 14:36 libieee1284.so.3 -> libieee1284.so.3.2.2
-rw-r--r-- 1 root root 46576 2011-07-27 13:08 libieee1284.so.3.2.2
Tímto způsobem mohou vývojáři odkazovat buď proti -lieee1284 (jakákoli verze ABI), nebo libieee1284.so.3 nebo dokonce na konkrétní verzi vydání a opravy (3.2.2)
Nejlepší způsob, jak to zvládnout, je použít libtool, který za vás spraví verze.
Informace o verzi v podstatě nejsou (nebo ne primárně, nevím z mé hlavy) zakódovány v samotné knihovně, ale spíše v jejím názvu souboru. Čísla verzí jsou normálně uvedena ve formátu tří teček, přičemž hlavní číslo se zvyšuje s každým přerušením kompatibility sestupného ABI, střední číslo pro přerušení vzestupné kompatibility ABI a vedlejší číslo pro opravy, které nezměnily ABI.
Jak poznamenal qdot, symbolické odkazy v adresáři lib poskytují základní verzování. Existuje symbolický odkaz bez čísla verze (libfoo.so) pro aktuálně nainstalované vývojové hlavičky, symbolický odkaz s hlavním číslem pro každou nainstalovanou hlavní verzi (libfoo.so.1) a skutečný soubor s plným číslem verze. Normálně jsou programy propojeny tak, aby používaly libfoo.so.1 za běhu, takže může koexistovat více hlavních verzí.