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

 C++ Discussion :

undefined reference to


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut undefined reference to
    Voila mon souci:

    Dans mon programme j'ai 5 fichiers :

    -Le main()
    -2 fichiers de class HPP
    -2 fichiers pour l'implémantation de ces class CPP

    J'utilise l'héritage simple et le polymorphisme :

    class 1 //Dans cette class 2 fonctions virtuelles pures
    class 2 : public class 1

    Je suis sûr de mes inclusions pourtant lors de la compilation le compilo me retourne:

    /home/loloyaya/programmation/Preventif/src/preventif.cpp:37: undefined reference to `base_graphique::base_graphique()'
    /home/loloyaya/programmation/Preventif/src/preventif.cpp:39: undefined reference to `definir_objet::definir_objet()'
    /home/loloyaya/programmation/Preventif/src/preventif.cpp:46: undefined reference to `definir_objet::~definir_objet()'
    /home/loloyaya/programmation/Preventif/src/preventif.cpp:46: undefined reference to `base_graphique::~base_graphique()'
    /home/loloyaya/programmation/Preventif/src/preventif.cpp:46: undefined reference to `definir_objet::~definir_objet()'
    /home/loloyaya/programmation/Preventif/src/preventif.cpp:46: undefined reference to `base_graphique::~base_graphique()'
    collect2: ld returned 1 exit status

    Est ce que quelqu'un à une Idée Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut
    Apparemment ce n'est pas un problème de compilation mais de linker. Tu as déclaré les constructeurs & destructeurs de tes classes, mais les as-tu définis? Les erreurs suggèrent que non. Si tu nous montres un peu le code, on pourra peut-être mieux t'aider.

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Merci de t'as réponse voici donc le code concerné qui est un entrainement pour mon futur projet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    class base_graphique{                        //ADT car plus loin on trouve 2 fonctions 
                                                                //virtuelles pures
    public:
     
    	//Surcharge du constructeur
     
    	base_graphique();
    	base_graphique(int largeur);
    	base_graphique(int largeur, int longueur);
    	base_graphique(int largeur, int longueur, QString titre);
    	~base_graphique();
    Implémantation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    base_graphique::base_graphique():
    mlargeur(700),
    mlongueur(700),
    mtitre("Example")
    {
    }
     
    base_graphique::base_graphique(int largeur):
    mlargeur(largeur),
    mlongueur(700),
    mtitre("Example")
    {
    }
     
    base_graphique::base_graphique(int largeur, int longueur):
    mlargeur(largeur),
    mlongueur(longueur),
    mtitre("Example")
    {
    }
     
    base_graphique::base_graphique(int largeur, int longueur, QString titre):
    mlargeur(largeur),
    mlongueur(longueur),
    mtitre(titre)
    {
    }
     
    base_graphique::~base_graphique()
    {
    }
    2 eme class qui hérite de la présedante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class definir_objet: public QWidget, public base_graphique {
     
    Q_OBJECT
     
    public:
       	definir_objet();
    	definir_objet(int largeur);
    	definir_objet(int largeur, int longueur);
    	definir_objet(int largeur, int longueur, QString titre);
    	//definir_objet( const définir_objet & copie);                    //Constructeur de copie
            ~definir_objet();
    l'implémantation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    definir_objet::definir_objet():
    QWidget(),
    base_graphique()
    {
     
    }
     
    definir_objet::definir_objet(int largeur ):
    QWidget(),
    base_graphique(largeur)
    {
     
    }
     
    definir_objet::definir_objet(int largeur ,int longueur):
    QWidget(),
    base_graphique(largeur, longueur)
    {
     
    }
     
    definir_objet::definir_objet(int largeur ,int longueur, QString titre):
    QWidget(),
    base_graphique(largeur, longueur, titre)
    {
     
    }
     
    definir_objet::~definir_objet()
    {
    }
    Et enfin mon main():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    int main(int argc, char *argv[])
    {
      QApplication principale(argc, argv);
     
    	base_graphique objet;
     
    	definir_objet Soutireuse;
     
     
    return principale.exec();
     
     
    }
    J'ai bien appris le c++ malgrés tous je débute mais la je ne vois pas dou peut venir mon erreur.

    Merci d'avance pour votre aide.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    As-tu rajouté base_graphique.cpp à ton projet?

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Houps

    En faite j'ai oublié tout betement d'inclure alors que j'étais sur de l'avoir fait
    qwidget.h dans ma class de base.

    Désolé d'avoir posté pour une bêtise pareille.

    Merci quand même à ceux qui ont essayé de m'aider.

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

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. Undefined reference compilation réseau
    Par Ren97 dans le forum Dev-C++
    Réponses: 11
    Dernier message: 08/03/2005, 09h46
  3. Compilation de xmms : undefined reference to...
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/02/2005, 19h05
  4. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  5. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23

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