Problème de compilation / liaison avec une librairie

Problème de compilation / liaison avec une librairie - C++ - Programmation

Marsh Posté le 04-01-2006 à 21:38:02    

Bonjour,
 
Voici le problème :
 
Je souhaite compiler le fichier "run.C" avec les 3 fichiers "a.o", "b.o" et "c.o".
 
Première approche :
g++ run.C a.o b.o c.o -o run  
 
Deuxième approche :
ar r libtest.a a.o b.o c.o
g++ run.C -ltest
 
Ces deux méthodes ne sont pas totalement équivalentes. Dans le cas de la première, mon programme fonctionne bien, mais pas dans le cas de la seconde, où tout se passe comme si le linker n'utilisait que ce qui est vraiment référencé par "run.C". Or, j'ai comme contrainte d'utiliser la deuxième méthode. Comment faire pour que cela fonctionne ? Peut-on rendre ces méthodes équivalentes avec des options supplémentaires ?
 
Merci !
 
 
PS : En fait, la deuxième méthode ne fonctionne pas car des variables globales dans les fichiers .o ne sont pas initialisées, contrairement à la première méthode. Je donnerai plus de détails si nécessaire...

Reply

Marsh Posté le 04-01-2006 à 21:38:02   

Reply

Sujets relatifs:

Leave a Replay

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