[Résolu] Link avec lib statique sous Linux

Link avec lib statique sous Linux [Résolu] - C++ - Programmation

Marsh Posté le 25-07-2011 à 11:16:54    

Bonjour à tous,
 
j'ai un problème qui me bloque depuis plusieurs jours et dont je ne comprends pas l'origine.
Je bosse actuellement sous linux. (Suse)
 
J'ai une librairie statique que je compile (en résumant) via :
 
g++ -c MesSources -I./MesPathsInclude -W -Werror -Wall -pedantic etc...
ar rcs libMaLib.a MesObjets
 
avec :
MesObjets = $(MesSources:.cc=.o)
 
La compile se passe bien, ma lib sort. Bref, à priori, pas de problème.
 
Dans un deuxième temps, je souhaite maintenant me servir de ma lib. Je crée donc un petit main tout simple du type :
 
#include "UnObjetDeMaLib.hh"
#include <string>
 
int main(int /*argc*/, char **/*argv*/)
{
      monNamespace::UnObjetDeMaLib  lObjet;
       
      std::cout << lObjet.print() << std::endl;
      return (0);
}
 
Puis je fais un makefile avec comme lignes de commande (en résumé à nouveau) :
 
g++ -c main.cc -I./MesPathsInclude -W -Werror -Wall -pedantic etc...
g++ -oMonExe MesObjets -L./MesPathLib -lMaLib
 
Et là... Ô rage, ô désespoir, il se met à me sortir plein d'erreur de link au sein de la librairie du style:
unFichierDeMaLib.cc:(.text+0xaaaa): undefined reference to `monNamespace::UnAutreObjetDeMaLib::UneMethode()'
 
Ce qui est troublant car, les problèmes de liens n'ont pas l'air d'avoir lieu entre mon main et ma lib, mais en interne dans la lib.
 
Quelqu'un a-t-il une explication ? Est-ce que je compile mal la lib ? L'exe ?
 
(Pour info, j'ai déjà essayé le ranlib, ce n'est donc pas ça le problème)
 
Merci d'avance


Message édité par Linbeg le 25-07-2011 à 13:18:23
Reply

Marsh Posté le 25-07-2011 à 11:16:54   

Reply

Marsh Posté le 25-07-2011 à 13:16:44    

Problème résolu :
 
- Je suis un gros nul, j'avais oublié UN fichier dans mon Makefile librairie...

Reply

Sujets relatifs:

Leave a Replay

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