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.
