Les numéros de Version de l'objet partagé des fichiers

Je suis en train de construire un fichier objet partagé à partir d'un groupe de fichiers source C++ avec GCC. Tous les exemples de tutoriels sur la construction de .so fichiers afficher le fichier créé avec un numéro de version après la .so suffixe. Par exemple:

gcc -shared -Wl,-soname,libmean.so.1 -o libmean.so.1.0.1  calc_mean.o

Ce serait de produire la .so fichier libmean..1.0.1

En outre, si je navigue dans le /usr/lib répertoire sur ma machine locale, je vois que beaucoup de la .so fichiers ont des numéros de version à la fin.

Cependant, quand je compile un fichier objet partagé et le placer dans /usr/lib, le linker ne trouve pas ça si j'ai mis un numéro de version à la fin. Si je supprime le numéro de version, il fonctionne très bien. J'ai vraiment ne se soucient pas de mettre un numéro de version ou pas, je ne comprends juste pas pourquoi cela semble être d'une convention commune, et pourtant, cela provoque la bibliothèque partagée de ne pas travailler avec l'éditeur de liens. Donc, ce qui se passe ici? Pourquoi est-il une convention pour placer le numéro de version à la fin d'une .so nom de fichier?

OriginalL'auteur Channel72 | 2011-04-22