Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de compilation

Sujet résolu
    22 mars 2018 à 11:30:24

    Bonjour,

    Je suis actuellement le cours sur le langage C disponible sur le site. J'en suis à l'exercice 5 sur les tableaux et je rencontre une erreur.

    Lien vers le cours : https://openclassrooms.com/courses/apprenez-a-programmer-en-c/les-tableaux-2

    Voici ce que la console me retourne lorsque je tente de build :

    ||=== Build: Debug in tableau_exo5_ordonner (compiler: GNU GCC Compiler) ===|
    obj\Debug\main.o||In function `main':|
    E:\Projets_C\tableau_exo5_ordonner\main.c|18|undefined reference to `ordonnerTableau'|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    

    J'utilise 3 fichiers pour m'entraîner :

    main.c :

    #include <stdio.h>
    #include <stdlib.h>
    #include "tableaux.h"
    
    int main()
    {
        int tableau[4] = {15, 81, 22, 13};
        int tailleTableau = 4;
        int i;
    
        printf("Avant tri :\n\n");
    
        for(i = 0; i < tailleTableau; i++)
        {
            printf("%d\n", tableau[i]);
        }
    
        ordonnerTableau(tableau, tailleTableau);
    
        printf("\n\nApres tri :\n\n");
    
        for(i = 0; i < tailleTableau; i++)
        {
            printf("%d\n", tableau[i]);
        }
    
        return 0;
    }
    

    tableaux.c :

    #include <stdio.h>
    #include <stdlib.h>
    #include "tableaux.h"
    
    void ordonnerTableau(int tableau[], int tailleTableau)
    {
        int i;
        int j;
        int temp = 0;
    
    }
    

    tableaux.h :

    void ordonnerTableau(int tableau[], int tailleTableau);
    

    Le fichier tableaux.c n'est pas terminé, j'ai lancé mon build afin de vérifier que la fonction soit bien retrouvée (pas le niveau pour tenter des one shot :D). Justement, mon build s'arrête avec une erreur que je n'arrive pas à comprendre. Il semble qu'à la demande d'exécution de la fonction ordonnerTableau dans mon main.c, celle-ci n'est pas trouvée.

    Si vous pouviez me guider sans me donner la réponse ce serait parfait :ange:

    Bien cordialement,

    Benjamin





    • Partager sur Facebook
    • Partager sur Twitter
      22 mars 2018 à 11:44:27

      Coucou,

      C’est exactement ça. Le linker (dernière étape de la compilation) ne trouve pas la fonction pour la lier à son appel.

      C’est vraisemblablement un problème de configuration de ton projet. Regarde dans les propriétés de tableaux.c s’il n’y a pas une case à cocher pour l’ajouter aux cibles debug ou release.

      • Partager sur Facebook
      • Partager sur Twitter
        22 mars 2018 à 11:57:38

        Merci beaucoup ! C'était effectivement le problème^^ Bon à savoir !

        En espérant que ceci pourra aider d'autres personnes :

        Sous Code:Blocks 17.12 :

        • Faire un clique-droit sur le fichier (ici tableaux.c)
        • Sélectionner tout en bas : Properties...
        • Sélectionner l'onglet : Build
        • Cocher les cases : Debug et Release
        • Cliquer sur OK
        • Compiler !
        Bon dev à tous !
        • Partager sur Facebook
        • Partager sur Twitter

        Erreur de compilation

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown