Re: Version de librairie dans un executable

Top Page

Reply to this message
Author: Francois-Xavier KOWALSKI
Date:  
To: guilde
Subject: Re: Version de librairie dans un executable
>>>>> "Manu" == Manu Rouat <emmanuel.rouat@???> writes:

Manu> Frédéric Mantegazza wrote:
>>
>> Bonjour,
>>
>> Lorsque l'on compile un programme qui utilise une librairie
>> dynamique, je suppose que le linker stocke quelque part la
>> version de cette librairie (celle qu'il aura trouvé au moment de
>> l'édition des liens). Me trompe-je ?


Non, on appelle cela le 'soname', qui ne prend en compte que le majeur
de la librairie. (Le mineur etant cense assurer la compatibilite
arriere...).

>> Si c'est bien cela, existe-t-il alors un moyen pour changer la
>> version de la librairie que doit utiliser cet exécutable (par
>> exemple lui forcer l'utilisation d'une version 2.5 alors qu'il
>> avait été linké sur la 2.3; je me doute bien qu'il faut que les
>> librairies soient compatibles...)



Manu> a moins que qqun connaisse la reponse magique, moi je vois pas
Manu> d'autre solution simple que de te faire un lien symbolique
Manu> entre la 2.3 et la 2.5.


Attention, cela est OK si l'executable ne contient pas le 'soname'
explicite de la librairie avec laquelle il a ete lie. Autrement dit,
si la commande de link finissait par -lmylib ta solution est OK. En
revanche, si l'objet a lier a ete specifie completement (methode pas
propre & peu adapte aux mises a jour), tu es cuit.

    A+.
        FX.


-- 
Fix KOWALSKI                              mailto:ayoul@club-internet.fr
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DON'T PANIC! I'm a trained professional, and far more qualified to
panic in this situation than you are. -- Mark "Monty" Montague