IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse C & C++ Discussion :

Problème de référence indéfinie


Sujet :

Eclipse C & C++

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 28
    Points : 21
    Points
    21
    Par défaut Problème de référence indéfinie
    Bonjour,

    J'ai un problème de référence sous Eclipse, j'ai le message suivant lorsque que je compile mon projet
    undefined reference to `Entreprise::liste_entreprises'
    Cette erreur apparait même lorsque j'exclus toutes mes autres classes du build.

    J'ai donc plus qu'un fichier Entreprise.h et Entreprise.cpp.

    Le fichier Entreprise.h contient une map static privée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static map<string, Entreprise*> liste_entreprises;
    Une des méthodes dans le fichier cpp fait référence à cet attribut de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Entreprise::~Entreprise() {
        Entreprise::liste_entreprises.erase(this->siret); // <-- Erreur : undefined reference to `Entreprise::liste_entreprises'
    }
    Bien évidemment tous les includes sont OK

    Je ne trouve pas de solutions, étant donné que lorsque je compile à la main ça fonctionne.
    Voici la totalité du retour console :
    make all
    Building target: banque
    Invoking: GCC C++ Linker
    g++ -o"banque" ./Entreprise.o
    /usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../lib64/crt1.o: In function `_start':
    (.text+0x20): undefined reference to `main'
    ./Entreprise.o: In function `~Entreprise':
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:23: undefined reference to `Entreprise::liste_entreprises'
    ./Entreprise.o: In function `Entreprise::setSiret(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:49: undefined reference to `Entreprise::liste_entreprises'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:49: undefined reference to `Entreprise::liste_entreprises'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:50: undefined reference to `Entreprise::liste_entreprises'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:52: undefined reference to `Entreprise::addEntreprise(Entreprise*)'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:54: undefined reference to `CompteException::CompteException(int, int)'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:54: undefined reference to `CompteException::~CompteException()'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:54: undefined reference to `typeinfo for CompteException'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:56: undefined reference to `CompteException::~CompteException()'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:56: undefined reference to `typeinfo for CompteException'
    ./Entreprise.o: In function `Entreprise::setNom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:64: undefined reference to `CompteException::CompteException(int, int)'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:64: undefined reference to `CompteException::~CompteException()'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:64: undefined reference to `typeinfo for CompteException'
    ./Entreprise.o: In function `Entreprise::printIdents()':
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:82: undefined reference to `Entreprise::liste_entreprises'
    /home/Thibaut/workspace/banque/Debug/../Entreprise.cpp:84: undefined reference to `Entreprise::liste_entreprises'
    ./Entreprise.o.gcc_except_table+0xbc): undefined reference to `typeinfo for CompteException'
    ./Entreprise.o.gcc_except_table+0xd4): undefined reference to `typeinfo for CompteException'
    ./Entreprise.o: In function `CompteException':
    /home/Thibaut/workspace/banque/Debug/../CompteException.h:24: undefined reference to `vtable for CompteException'
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [banque] Erreur 1
    Quelqu'un aurait-il une idée du problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Bon en faite j'ai résolu mon problème.

    Eu début de mon .cpp il fallait que je redeclare ma map statique !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compilation: Référence indéfinies
    Par richard_sraing dans le forum C++
    Réponses: 4
    Dernier message: 05/07/2007, 10h49
  2. Problème de référence indéfinie
    Par skyangel dans le forum C++
    Réponses: 1
    Dernier message: 28/03/2007, 16h53
  3. [FLASH MX2004] this et problème de référence
    Par cristolb dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 03/05/2006, 22h33
  4. Problème de référence de données circulaire
    Par Wismerhill50 dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2005, 22h38
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo