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 :

Correction de Bug - Undefined Reference


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Par défaut Correction de Bug - Undefined Reference
    Bonjour,

    j'ai un projet de programmation qui consiste en debugger un jeu créé par nos profs.
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
     
    void SetColor(int ForgC);
    void ClearTerm();
    void Wait();
     
    #define SIZE 20
     
     
    void afficher_carte (int carte[SIZE][SIZE]) ///1
    {
        int i, j;
        // Nettoyage de l'ecran
        ClearTerm();
        SetColor(255);
        // Va trop loin...
        for (i = 0; i <= SIZE * (2 + 3); i++)
        {
            printf("\n");
        }
        printf("X");
        printf("X");
        printf("X");
        for (i=0; i <= SIZE * (2 + 3); i++)
        {
            printf("X");
        }
        printf("\n");
     
        for (i=0; i<=SIZE; i++)
        {
            printf("XX");
            for (j=0; j<=SIZE; j++)
            {
                switch(carte[i][j])
                {
                case 0:
                    SetColor(256);
                    printf(". ");
                    break;
                case 1:
                    SetColor(42);
                    printf("# ");
                    break;
                case 2:
                    SetColor(44);
                    printf("# ");
                case 3:
                    SetColor(30);
                    printf("# ");
                    break;
                case 4:
                    SetColor(41);
                    printf("# ");
                    break;
                default:
                    printf("FF");
                    break;
                }
            }
            SetColor(255);
            printf("XX\n");
        }
        SetColor(255);
        for (i = 0; i <= SIZE * 2; i++)
        {
            printf("X");
        }
        printf("\n");
        for (i = 0; i <= SIZE * 2 + 3; i++)
        {
            printf("X");
        }
        printf("\n");
    }
    J'utilise Code::Blocks et il m'indique plusieurs fois l'erreur suivante :

    undefined reference to `ClearTerm'
    undefined reference to `SetColor' à chaque de SetColor est mentionné.

    Je ne comprends pas pourquoi et je ne sais pas quoi faire.

    Merci d'avance :)

  2. #2
    Membre très actif
    Homme Profil pro
    Programmeur des cavernes
    Inscrit en
    Août 2017
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Programmeur des cavernes
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 364
    Par défaut
    Je ne vois pas plus que le compilateur où se trouvent les fonctions manquantes.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Lignes 6, 7 et 8, ton code indique "il existe quelque part 3 fonctions". Le reste du code veut utiliser les 2 premières.
    Arrivé à la fin de la compilation, ce que font concrètement ces fonctions n'est jamais fourni dans ton code.
    A l'édition des liens, l'absence de ces fonctions empêche d'avoir un code complet.

    Où sont ces fonctions? Ton code semble être une récupération d'un exemple incomplet. Ces fonctions ne sont pas des fonctions pré-existantes (comme par exemple printf() que tu utilises et qui a sa déclaration dans #include <stdio.h>).

  4. #4
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Bonjour,

    Dans ton code il y a une déclaration de trois fonctions qui sont clearTerm() setColor() et wait() qui n'ont pas été définies par la suite donc à chaque appel a ces fonctions le compilateur ne trouvant pas leurs définitions ne sait pas quoi faire et te sort une erreur; étant donné que la première n'est appelée qu'une seule fois il te sort une seule erreur et pour l'autre autant d'erreurs que d'appels .
    Tu remarqueras que la fonction wait() n’étant pas appelée dans ton code ne te génère aucune erreur.

    Il faut noter que si ces fonctions faisait déjà partie d'une bibliothèque, leur déclaration est donc faite dans leurs bibliothèques et est donc inutile dans ton fichier.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 492
    Billets dans le blog
    1
    Par défaut
    Si ça peut aider à comprendre le problème https://c.developpez.com/faq/?page=G...mbol-not-found

Discussions similaires

  1. Sortie du CMS Dotclear en version 2.1.6, corrections du bugs à gogo.
    Par RideKick dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/10/2009, 10h28
  2. Réponses: 0
    Dernier message: 02/10/2009, 09h01
  3. Ne peut accéder à la liste de correction des bugs...
    Par méphistopheles dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 02/05/2006, 21h59

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