Erreur sur une librairie partagee

Erreur sur une librairie partagee - C - Programmation

Marsh Posté le 26-04-2006 à 17:23:30    

Bonjour,
 
J'ai un probleme bizarre, je dois creer un plugin (une librairie partagee en .so) pour un jeu que j'ai creer mais lorsque je link GTK avec ma librairie partagee:
 
 gcc -shared -g -Wall `pkg-config --libs gtk+-2.0` `pkg-config --cflags gtk+-2.0` mw_gtk.c -o mw_gtk.so (j'ai essayer en rajoutant -static a gcc mais sa n'a rien changer)
 
J'ai un message "Abort" et mon programme quitte. "Abort" ne fait pas partie de ma gestion d'erreur et lorsque je ne link pas ma librairie avec GTK, le programme s'execute correctement mais n'affiche rien (ce qui est normal).
 
Voici la partie du code ou sa quitte:
 
if ((handle = dlopen(av[i], RTLD_NOW))) ou av[i] est le chemin vers ma librairie partagee qui fonctionne sans soucis sans GTK mais qui ne sert plus a grand chose  :(  
 
Ce probleme me bloque totalement et je vois pas comment resoudre la probleme.
 
Merci d'avance

Reply

Marsh Posté le 26-04-2006 à 17:23:30   

Reply

Marsh Posté le 26-04-2006 à 17:35:37    

c'est quoi la valeur de av[i] ?

Reply

Marsh Posté le 26-04-2006 à 17:56:28    

av[i] contient le chemin vers ma librairie partagee
 
bon par contre, j'ai un peu avancer et voila le nouveau probleme (peut etre sera-t-il plus clair  :pt1cable: )
 
(localhost) gcc -c -fPIC mw_gtk.c `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
gcc: -R/usr/pkg/lib: linker input file unused because linking not done
gcc: -lgtk-x11-2.0: linker input file unused because linking not done
gcc: -lgdk-x11-2.0: linker input file unused because linking not done
gcc: -latk-1.0: linker input file unused because linking not done
gcc: -lgdk_pixbuf-2.0: linker input file unused because linking not done
gcc: -lm: linker input file unused because linking not done
gcc: -lpangocairo-1.0: linker input file unused because linking not done
gcc: -lpango-1.0: linker input file unused because linking not done
gcc: -lcairo: linker input file unused because linking not done
gcc: -lgobject-2.0: linker input file unused because linking not done
gcc: -lgmodule-2.0: linker input file unused because linking not done
gcc: -lglib-2.0: linker input file unused because linking not done
 
(localhost) gcc -shared -static mw_gtk.so mw_gtk.o (avec ou sans static sa ne marche pas)
 
Et la ou tout a l'heure j'avais "Abort", maintenant j'ai :
 
Error locating 'handle' - ./mw_gtk.so: Undefined symbol "gtk_init" (symnum = 31)
 
La c'est un message d'erreur a moi donc je sais d'ou il vient mais pas comment le regler (il est generer par la ligne de code dans le premier message).

Reply

Marsh Posté le 26-04-2006 à 19:44:39    

gcc -c n'effectue pas l'édition de lien.

Reply

Marsh Posté le 26-04-2006 à 19:47:17    

gcc -shared -fPIC mw_gtk.c `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` -o mw_gtk.so

Reply

Marsh Posté le 26-04-2006 à 19:49:36    

++fab a écrit :

gcc -shared -fPIC mw_gtk.c `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` -o mw_gtk.so


 
Merci pour le coup de main, je teste ça demain  :bounce:  

Reply

Marsh Posté le 26-04-2006 à 19:51:14    

mouais, plutot -o libmw_gtk.so

Reply

Marsh Posté le 27-04-2006 à 12:19:20    

Retour au point de depart, je me reprends de nouveau Abort comme message d'erreur

Reply

Marsh Posté le 28-04-2006 à 15:40:52    

wiflye81 a écrit :

Retour au point de depart, je me reprends de nouveau Abort comme message d'erreur


 
Bon alors apres plusieurs tentatives j'en deduis que c'est l'installation de gtk2 qui ne vas pas, puisque sa fonctionne en gtk1, je tacherais de tester sur un autre pc pour etre sur, donc pour le moment je laisse le sujet en non resolu.

Reply

Sujets relatifs:

Leave a Replay

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