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

Clang et LLDB Discussion :

problème de compilation


Sujet :

Clang et LLDB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 2
    Points
    2
    Par défaut problème de compilation
    Bonjour à tous
    je viens de me mettre au C++ et après mon premier programme j'ai un bug a la compilation (je pense que le bug n'est pas du au code mais a un problème dû à mon ordi, je tourne sous Mac OS X 10.14)
    voici la capture d'écran du problème
    Nom : Capture d’écran 2018-10-18 à 16.05.59.png
Affichages : 162
Taille : 1,01 Mo
    je mets aussi le copier/coller du message d'erreur au cas où :
    Undefined symbols for architecture x86_64:
      "Ennemi::est_vivant()", referenced from:
          _main in main-b1bd6a.o
      "Ennemi::get_x()", referenced from:
          _main in main-b1bd6a.o
      "Ennemi::get_y()", referenced from:
          _main in main-b1bd6a.o
      "Ennemi::get_score()", referenced from:
          _main in main-b1bd6a.o
      "Ennemi::Ennemi(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int)", referenced from:
          _main in main-b1bd6a.o
      "Ennemi::~Ennemi()", referenced from:
          _main in main-b1bd6a.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    je poste aussi le contenu des fichiers utilisés ici :
    Main.cpp :
    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
    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include "Ennemi.h"
     
    using namespace std;
     
    int main(){
    	cout << "Hello World !!" << endl;
    	Ennemi e ("Hello", 1, 3);
    	cout << "x : ";
    	cout << e.get_x() << endl;
    	cout << "y : ";
    	cout << e.get_y() << endl;
    	cout << "vivant : ";
    	cout << e.est_vivant() << endl;
    	cout << "score : ";
    	cout << e.get_score() << endl;
    	return 0;
    }
    Ennemi.h
    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
    #ifndef DEF_ENNEMI
    #define DEF_ENNEMI
     
    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
     
    using namespace std;
     
    class Ennemi {
        public :
     
        Ennemi ();
        Ennemi (string s);
        Ennemi (string s, int x, int y);
        bool est_vivant ();
        void generation (string s, int L, int H);
        void generation (int L, int H);
        int get_x ();
        int get_y ();
        char get_symbole ();
        int get_score ();
        void set_mort ();
        // bool toucher_par_oiseau (Oiseau &o);
        ~Ennemi ();
     
        private : 
     
        int x;
        int y;
        bool vivant;
        string type;
        int score;
    }; 
     
    #endif
    Ennemi.cpp
    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
    #include "Ennemi.h"
     
    using namespace std;
     
    Ennemi (){
        Ennemi e;
    	e.x = 0;
        e.y = 0;
        e.vivant = 1;
        e.type = " ";
        e.score = 0;
        return e;
    }
     
    Ennemi (string s){
        Ennemi e;
        e.x = 0;
        e.y = 0;
        e.vivant = 1;
        e.type = s;
        e.score = 0;
        return e;
    }
     
    Ennemi (string s, int x, int y){
        Ennemi e;
        e.x = x;
        e.y = y;
        e.vivant = 1;
        e.type = s;
        e.score = 0;
        return e;
    }
     
    bool est_vivant (){
        return this.vivant;
    }
     
    void generation (string s, int L, int H){
     
    }
     
    void generation (int L, int H){
     
    }
     
    int get_x (){
        return this.x;
    }
     
    int get_y (){
        return this.y;
    }
     
    char get_symbole (){
     
    }
     
    int get_score (){
        return this.score;
    }
     
    void set_mort (){
        this.vivant = 0;
    }
     
    // bool Ennemi::toucher_par_oiseau (Oiseau &o){
     
    // }
     
    ~Ennemi (){
     
    }


    je vous remercie d'avance de votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 375
    Points : 1 030
    Points
    1 030
    Par défaut
    Bonsoir,

    Le message d'erreur indique : ld: symbol(s) not found pour dire que des symboles (cités plus haut : Ennemi::~Ennemi() par exemple) sont introuvables.

    Le problème c'est que seul main.cpp est compilé, il faut aussi compiler Ennemi.cpp.

    Si c'est bien là le problème, cela veut dire que ce n'est ni un problème de code, ni d'ordinateur ni même de compilation mais d'édition de lien (la liaison des différents fichiers objet obtenus par compilation).

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 2
    Points
    2
    Par défaut réponse
    oui merci de ton aide, en effet en compilant tout les fichiers, cela fonctionne mieux

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

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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