librairies partagées avec g++ sous cygwin

librairies partagées avec g++ sous cygwin - C++ - Programmation

Marsh Posté le 06-11-2003 à 18:11:20    

hello,
 
j'ai un soucis pour la création de librairies partagées avec g++ sous cygwin.
Je m'explique:
 
j'ai un fichier toto.cpp
 

Code :
  1. int fonction(int argc, char *argv[])
  2. {
  3. return 0;
  4. }


 
je compile ce fichier
g++ -c -o ./toto.o ./toto.cpp
 
puis je crée une lib statique.
ar -crv ./toto.a ./toto.o
 
vient ensuite la création de la lib partagée.
Pour faire simple et ne pas avoir de problèmes par la suite, j'exporte tous les symboles.
Je veux la créer avec g++ et non pas avec ld sinon je sais que je vais avoir des pbs pour la gestion des exceptions qui sont levées dans une librairie et qui doivent être catchées dans une autre.
 
Sous linux:
g++ -shared --whole-archive ./toto.a libtoto.so
 
dans ce cas, le symbole de ma fonction n'est pas exporté.
Après 1h de recherche:
 
g++ -shared -Xlinker --whole-archive ./toto.a libtoto.so
oki, ça tourne.
 
 
La même chose sous cygwin:
g++ -shared --whole-archive ./toto.a libtoto.so
 
   => symbole non exporté.
 
j'essaye donc
g++ -shared -Xlinker --whole-archive ./toto.a libtoto.so
 
   => des milliers de redéfinitions dans libgcc.a (pas grave, mais bon...)
   => 1 erreur: libcygwin.a(libcmain.o)(.text+0x7c): référence indéfinie vers « _WinMain@16 »
je ne vois d'ailleurs pas pourquoi il cherche ce point d'entrée ...
 
 
1 idée ou 1 suggestion?
 

Reply

Marsh Posté le 06-11-2003 à 18:11:20   

Reply

Marsh Posté le 06-11-2003 à 20:55:22    

Bah tu vas a la librerie acheter un bon magazine ;)

Reply

Marsh Posté le 06-11-2003 à 21:22:08    

LuX_hard a écrit :

Bah tu vas a la librerie acheter un bon magazine ;)


 
les hors serie de science et vie est pas trop mal mais je vois pas ou ca va l'aider :??:

Reply

Marsh Posté le 07-11-2003 à 08:04:27    

LuX_hard a écrit :

Bah tu vas a la librerie acheter un bon magazine ;)


?
j'ai des problèmes de compréhension du linker de g++ e de ses options, pas de problèmes de magazine. Et la doc de g++ ne m'aide pas beaucoup sur ce sujet...

Reply

Marsh Posté le 07-11-2003 à 09:25:48    

bon, j'ai laché l'affaire.
Pas de soucis pour créer la librairie directement à partir des .o. Pour la création à partir de la lib statique, c'est le foutoir. J'ai essayé de différentes façons, comme ils expliquent dans leurs guides, mais rien ne fonctionne.
donc tant pis.


Message édité par SoWhatIn22 le 07-11-2003 à 09:26:16
Reply

Sujets relatifs:

Leave a Replay

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