Parfait, merci pour ton aide. Apr�s avoir lu les liens que tu m'as envoy�s, 
je vais renoncer aux relogeables et n'utiliser que des shared librairies, �a 
me para�t plus appropri�, surtout que les performances ne semblent pas 
moindres.




On Saturday 29 December 2001 13:18, Olivier wrote:
> Hello,
>
> > Tr�s bien, �a va marcher. Mais ensuite, si je n'inclue pas libA.a dans
> > libB.a, comment est-ce que je saurai dans les programmes qui vont
> > utiliser libB.a qu'il faudra que j'include libA.a ?
>
> Attention : ne pas confondre les deux actions inclure et linker. Le fait
> d'inclure un fichier n'influence que la compilation. Et c'est seulement au
> link que l'on utlise les libraries (.a ou .so).
>
> Pour le probl�me de l'inclusion, tu peux le r�soudre en rajoutant
> l'inclusion du A.h dans le B.h.
>
> Pour le link, je ne vois pas de solution "simple" pour savoir quand il faut
> rajouter -lA. Si ce n'est que si tu ne le mets pas, tu verras des
> "undefined reference". Et ensuite, d'apr�s les noms des "undefined", tu
> pourras peut-etre trouver quelle libraries il te manque.
>
> > Je pourrais tr�s bien avoir le cas suivant :
> > libA.a
> > libB.a contient libA.a
> > libC.a contient libB.a
> > libD.a contient libC.a
> > et mon programme utilise libD.a. Au momen de la compilation de mon
> > programme, je devrai donc avoir -lD -lC -lB -lA, alors que je n'utilise
> > que les fonctions de libD.a. Je trouve �a plut�t emb�tant.
>
> Dans ce cas particuliers, tu pourrais rajouter le -lA quand tu cr�e libB.a,
> le -lB quand tu cr�e libC.a et le -lC quand tu cr�e libD.a. Ensuite, un -lD
> suffit pour ton programme.
>
> C'est pas tout � fait le m�me cas que lors de ton message pr�d�dent o�
> libA.a �tait inclus dans libB.a ET libC.a. Alors, le probl�me est si on
> veut utiliser certaines fois uniquement libB.a et d'autres fois uniquement
> libC.a, et d'autre fois libB.a et libC.a. C'est alors pas possible
> d'inclure libA.a ni dans libA.a, ni dans libB.a. Il faudra donc � tous les
> coups mettre un -lD.
>
> > Y'a pas un moyen d'�viter �a ?
>
> Avec des libraries partag�es (.so). G�n�re des libA.so, libB.so, libC.so et
> libD.so.
>
> Plus d'infos :
>     http://www.linuxdoc.org/HOWTO/Program-Library-HOWTO/
>
> Je conseille aussi l'utilisation de autoconf/automake/libtool.
> Plus d'informations :
>     http://www.gnu.org/software/autoconf/autoconf.html
>     http://www.gnu.org/software/automake/automake.html
>     http://www.gnu.org/software/libtool/libtool.html
>
> A plus.
>
>               Olivier
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à