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
-- 
Olivier Bornet                 |      fran�ais : http://puck.ch/f
Swiss Ice Hockey Results       |      english  : http://puck.ch/e
http://puck.ch/                |      deutsch  : http://puck.ch/g
[EMAIL PROTECTED]         |      italiano : http://puck.ch/i
Get my PGP-key at http://puck.ch/pgp or at http://wwwkeys.pgp.net
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à