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 :

Problème de linker à la compilation


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    dans ton cul
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : dans ton cul

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut Problème de linker à la compilation
    il veut pas compiler je comprend pas c une source ds un bouquin pour m'apprendre le c++ j'utilise dev c++ est mes messages d'erreurs sont :
    ld returned 1 exit status
    [Linker error] undefined reference to `Game::~Game()'
    [Linker error] undefined reference to `Game::Game()'


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     #include <iostream>
     #include "Game.h"
     
     int main()
     {
         Game theGame ;
         return 0;
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      class Game  
      {
       public:
          Game();
          ~Game();
          void   Play();
     
          bool   duplicatesAllowed;
          int    howManyLetters;
          int    howManyPositions;
         int    round;
      };
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    #include <iostream.h>
    #include "Game.h"
     
      Game::Game():
      round(1),
      howManyPositions(0),
      howManyLetters(0),
      duplicatesAllowed(false)
      {
         enum        BoundedValues  
         { 
            minPos = 2, 
            maxPos = 10, 
            minLetters = 2, 
            maxLetters = 26 
         };
         bool valid = false;
         while ( ! valid )
         {
            while ( howManyLetters < minLetters 
               || howManyLetters > maxLetters )
            {
               cout << "Nombre de lettres ? (";
               cout << minLetters << "-" << maxLetters << "): ";
               cin >> howManyLetters;
               if  ( howManyLetters < minLetters 
                  || howManyLetters > maxLetters )
               {
                  cout << "Veuillez entrer un nombre entre "; 
                  cout << minLetters << " et " << maxLetters << endl;
               }
            }
     
            while ( howManyPositions < minPos 
                 || howManyPositions > maxPos )
            {
               cout << "Nombre de positions ? (";
               cout << minPos << "-" << maxPos << "): ";
               cin >> howManyPositions;
               if  ( howManyPositions < minPos 
                  || howManyPositions > maxPos )
               {
                  cout << "Veuillez entrer un nombre entre "; 
                  cout << minPos <<" et " << maxPos << endl;
               }
            }
     
            char choice = ' ';
            while ( choice != 'o' && choice != 'n' )
            {
                cout << "Permettre les doubles (o/n) ? ";
                cin >> choice;
            }
     
            duplicatesAllowed = choice == 'o' ? true : false;
     
            if ( ! duplicatesAllowed && 
                 howManyPositions > howManyLetters )
            {
               cout << "Impossible de mettre " << howManyLetters;
               cout << " lettres dans " << howManyPositions;
               cout << " positions sans doublons ! Essayez à nouveau.\n";
               howManyLetters = 0;
               howManyPositions = 0;
            }
            else
               valid = true;
         }
     
     
      }
     
      Game::~Game()
      {
     
      }
     
      void Game::Play()
      {
     
      }

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    J'ai l'impression d'un problème dans la ligne de commande que tu utilises pour compiler, plus qu'un problème de code. Si tu la poste, on pourra t'en dire plus.

  3. #3
    Membre du Club
    Profil pro
    dans ton cul
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : dans ton cul

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    je ne m'est pas d'argument dans la ligne de commande , j'utilise dev c++ et j'appuie sur le bouton de la compilation ,je vais essayer avec un autre compilateur

  4. #4
    Membre du Club
    Profil pro
    dans ton cul
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : dans ton cul

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    Comprend pas avec Visual basic sa compile sans probléme

  5. #5
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    ça serait pas l'histoire du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef __GameH
    #define __GameH
     
    ...
     
    #endif
    à mettre dans le .h qui pose problème ?? Tu fais l'inclusion de "Game.h" deux fois, et je pense qu'à la seconde il n'inclut pas le header...

    Mais c'est bizarre qu'il ne renvoie les erreurs que sur les constructeur / destructeur...

    A+

    [EDIT] A moins que... tu n'aurais pas oublié de rajouter dans le projet que tu as créé (si tu n'as pas créé de projet alors ne cherche plus, ton erreur est là) le fichier Game.cpp ?? Dans ce cas c'est normal que le compilo crie... Et pour info c'est un bon compilo...

    A+

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Au passage, dans Game.cpp, tu utilises <iostream.h>
    http://c.developpez.com/faq/cpp/?pag...le#SL_iostream

  7. #7
    Membre du Club
    Profil pro
    dans ton cul
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : dans ton cul

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    a vrai dir je n'est pas creer de projet , sommes nous obliger d'en creer un ds le langage c++,si oui ds les compilateurs en lignes de commandes comment cela se passe?

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Il faut compiler (sans linker) ta classe Game, tu obtiens un fichier objet que tu donnes au moment de compiler et linker ton fichier main.

  9. #9
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Pour un compilateur avec interface (ce qui est le plus simple à mon avis pour des débutants), il te faut créer un projet (souvent il y a un onglet projet ou qqch qui s'en rapproche). Ensuite tu rajoutes à ton projet chaque fichier .cpp qui arbore ton programme.

    Et là, si tu compiles, tout est ok...

    Pour des compilateurs en ligne, c'est quand même mieux d'être sous unix avec l'utilisation des Makefiles... Sinon ça doit vite devenir laborieux...

    A+

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

Discussions similaires

  1. Problème de linker pour cross compile raspberry
    Par johnvox dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 08/04/2014, 11h11
  2. Réponses: 7
    Dernier message: 27/09/2005, 22h40
  3. [CDT] problème de build et compil (make -k)
    Par Prodejeu dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/11/2004, 00h18
  4. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 23h05
  5. [Debutant] Problème du linker [Dev-c++4]
    Par Macdir dans le forum Dev-C++
    Réponses: 3
    Dernier message: 30/05/2003, 21h50

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