link librarie

link librarie - C - Programmation

Marsh Posté le 22-05-2009 à 21:29:49    

Bonsoir,

 

J'ai un programme X.
Celui-ci est capable de charger des librairies .so.

 

J'utilise également la glib.
Dans mes librairies, j'utilise des fonctions de la glib
Mon problème, c'est que je ne comprends pas pourquoi, mon compilateur cherche a résoudre les symboles de la glib lorsqu'il compile mes .so.

 

Vu que mon programme X est lié à la glib, je ne devrais pas avoir besoin de liés mes .so à la glib, non ?

 

Par exemple, si je veux utilise g_warning, lorsque je complie mon .so :

Code :
  1. Undefined symbols:
  2.   "_g_log", referenced from:
  3.       _module_init in init.c.o
  4. ld: symbol(s) not found
  5. collect2: ld returned 1 exit status
 

Ps : j'utilise CMAKe


Message édité par nORKy le 22-05-2009 à 21:38:07
Reply

Marsh Posté le 22-05-2009 à 21:29:49   

Reply

Marsh Posté le 23-05-2009 à 21:40:29    

Tes bibliothèques sont des entités indépendantes. En tant que telles, si elles utilises la glib, elles doivent lier la glib. C'est le comportement par défaut du linker.

 

Ceci dit ça se désactive, regarde les options de ton linker. C'est utile dans certains cas, mais de base, je te le déconseille.


Message édité par Elmoricq le 23-05-2009 à 21:41:11
Reply

Marsh Posté le 24-05-2009 à 10:52:01    

merci pour l'info, ca parait bête, mais faut y penser :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed