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

Discussion :

Erreur de link (le fameux collect2: ld returned 1 exit status)

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Erreur de link (le fameux collect2: ld returned 1 exit status)
    Bonsoir,

    j'ai un problème de link sur un prgramme composé de plusieurs librairies.

    En gros, une librairie Description.Lib
    Une autre Affichage.lib qui contient une classe CAfficheur utilisant une autre classe CDescripteur issue de Description.lib
    Et mon programme final Test.exe qui dépend de Description et Affichage.

    Lors de la compilation de mes 3 projets, j'ai une erreur de link qui me stipule que dans CAfficheur.cpp : "undefined reference to CDescripteur::CDescripteur ()."

    En gros l'appel au constructeur n'est pas trouvé...

    Bien sûr, j'ai fait des clean All, des Qmake au moins 10 fois... Je pense que j'ai du oublié qqch dans mon .pro, ou bien dansla configuration de mes projets mais je vois pas quoi. Si quelqu'un avait une idée, ça m'aiderai beaucoup!

    Merci par avance !

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Dans le .pro de Affichage, tu as bien mis LIBS += "chemin/vers/Description.Lib" ? (plusieurs façon de l'écrire)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Je me suis posé la question et j'ai essayé rapidement à un moment donné mais je ne suis pas sûr d'avoir bien re-nettoyé les projets à ce moment là et fait un Qmake.

    Je vais réessayer de suite

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Arghhh, ca ne marche pas. Et le pire dans tout ça, c'est que j'ai fait un test en appelant une méthode d'une autre classe de la librairie Description et la ça link...

    Je suis en train de regarder la différence entre mes deux classes mais elles sont toutes simples et je ne vois pas de différences notoires...

    HELP !!!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Bon, j'ai essayé pleins de choses :

    - Vérifier tous mes headers
    - Tester avec d'autres classes de mes librairies
    - Coder un nouvel .exe

    Et au final, j'ai toujours le même problème. J4ai plus d'exprience dans les librairies dynamiques(DLL) que dans les librairies statiques et je me pose donc une question :

    Au niveau de mes classes d'interface, dois je utiliser des balises du type Q_DECL_EXPORT et Q_DECL_IMPORT suivant que je sois dans la librairie à compiler ou bien que j'y fasse appel ?

    Je pensais que les exports servait pour les DLL mais peut être que je me trompe ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Ouffff, je viens de trouver après pleins d'essai infructueux et la solution est vraiment débile !!!

    J'ai mon app.exe, ma lib display.a qui dépend de description.a et dans mon .pro, j'avais :
    LIBS += ../LIB/debug/libDescription.a
    LIBS += ../LIB/debug/libDisplay.a
    Et bien, je viens d'apprendre que l'orde a une importance !!! Il faut mettre en premier les librairies qui dépendent d'autres!

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

Discussions similaires

  1. symbol(s) not found / collect2: id returned 1 exit status
    Par Go'Gaule dans le forum Débuter
    Réponses: 13
    Dernier message: 27/07/2011, 17h19
  2. Réponses: 0
    Dernier message: 05/06/2011, 00h07
  3. erreur : collect2: ld returned 1 exit status
    Par MounaR dans le forum C++
    Réponses: 2
    Dernier message: 05/05/2011, 17h56
  4. error: collect2: ld returned 1 exit status
    Par tamildark dans le forum Débuter
    Réponses: 4
    Dernier message: 10/01/2011, 17h56
  5. collect2: ld returned 1 exit status
    Par marie mouse dans le forum Débuter
    Réponses: 19
    Dernier message: 17/12/2009, 16h13

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