2016-04-20 1 views
2

Lors de la compilation de la plupart des bibliothèques opensource, la commande make génère le fichier .la, qui aura les informations de version library_names et current=11 age=9 revision=0.Comment le numéro de version dans library_names est-il généré?

Je comprends que les informations de version current=11 age=9 revision=0 est générée à partir du drapeau version-info dans Makefile.am. En connaissant simplement les informations de version, comment make génère-t-il des noms de bibliothèque?

Exemple: Pour libcrack.so

dlname='libcrack.so.2' 
# Names of this library. 
library_names='libcrack.so.2.9.0 libcrack.so.2 libcrack.so' 

# Version information for libcrack. 
current=11 
age=9 
revision=0 

Version est spécifiée dans Makefile.am comme suit

libcrack_la_LDFLAGS = -version-info 11:0:9 

Maintenant, la question est: comment faire générer libcrack.so.2.9.0 avec le nombre 2.9.0 en prenant simplement version-info ?

Répondre

0

Habituellement système version bibliothèque libtool utilise le format suivant

soname.so.<current-age>.<age>.<revision>

C'est pourquoi dans l'exemple cité dans la question, libcrack.so.(11-9).9.0 = libcrack.2.9.0. Les informations plus détaillées peuvent être trouvées à library versioning