Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de linker...

pas moyen de compiler mon programme!

Sujet résolu
    30 décembre 2005 à 14:04:04

    Bonjour a tous!
    Après avoir lu les deux derniers chapitres du cours de C, j'ai voulu séparer mon code (celui du TP) en plusieurs fichiers. Seulement voila : quand je clique sur "compiler et executer", il y a une erreur : Image utilisateur

    Je ne voit pas du tout ou est mon erreur...

    p.s : si vous voulez les sources du prog, demandez moi.

    merci d'avance!
    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2005 à 14:09:22

      Bien sur qu'on veut les sources. Il y a différentes raisons qui peuvent expliquer ce probleme, comment veux tu qu'on cible laquelle si on a pas toutes les informations.
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2005 à 14:47:44

        envoie moi tes sources si tu n'a toujours pas réussi ton PB :
        rexumor@voila.fr en précisant bien comme objet siteduzero
        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2005 à 15:05:13

          Poste les sources sur le forum directement !
          • Partager sur Facebook
          • Partager sur Twitter
            30 décembre 2005 à 16:07:12

            main.c
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>
            #include "fonctions.h"


            int main ( int argc, char** argv )
            {
              int nombreMystere = 0, nombreEntre = 0;
              const int MAX = 100, MIN = 1;

                // Génération du nombre aléatoire
                nombreMystere = genereNombre(MIN, MAX);

                /* La boucle du programme. Elle se répète tant que l'utilisateur
                n'a pas trouvé le nombre mystère */


                do
                {
                    // On demande le nombre
                    printf("Quel est le nombre ? ");
                    scanf("%ld", &nombreEntre);

                    // On compare le nombre entré avec le nombre mystère
                    compareNombres(nombreEntre, nombreMystere);

                } while (nombreEntre != nombreMystere);


                system("PAUSE");
            }


            fonctions.c
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>

            int genereNombre(int MIN, int MAX)
            {
              int nombreMystere;
             
              srand(time(NULL));
              nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
              return nombreMystere;
            }

            void compareNombre(int nombreEntre, int nombreMystere)
            {
              if(nombreEntre < nombreMystere)
                    printf("C'est plus!\n");
               
              else if(nombreEntre > nombreMystere)
                    printf("C'est moins...\n");
               
              else if(nombreEntre == nombreMystere)
                    printf("Bravo! Vous avez trouve le nombre mystere!\n");
            }


            fonctions.h
            int genereNombre(int MIN, int MAX);
            void compareNombre(int nombreEntre, int nombreMystere);


            voila...
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              30 décembre 2005 à 16:11:17

              Ha ok... tes fonctions, il faut les mettre dans le fichier main ou alors inclure ton fichier fonction.c, sinon le programme il peux pas savoir où elles sont
              • Partager sur Facebook
              • Partager sur Twitter
                30 décembre 2005 à 16:17:20

                dans ton main :

                        // On compare le nombre entré avec le nombre mystère
                        compareNombres(nombreEntre, nombreMystere);


                enleve le "s" à compareNombres ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  30 décembre 2005 à 16:19:27

                  Ze moi> le principe du linker c'est ca > aller chercher les fonctions dont le compilo ignore la position

                  Les linker errors me decoivent beaucoup, ca devrait êtr ela plupart du temps des erreurs de compilation
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    30 décembre 2005 à 16:23:04

                    Non, le compilateur ne peut pas savoir que tu a fait une faute d'ortographe a tes prototype. Si tu veut obtenir lereur a la compilation, tu oubli la séparation dans divers fichiers :p
                    Ou alors, tu vérifi a chaque fois de ne pas faire de faute dnas les prototypes ^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      30 décembre 2005 à 16:23:52

                      Citation : asmanur

                      Ze moi> le principe du linker c'est ca > aller chercher les fonctions dont le compilo ignore la position

                      Les linker errors me decoivent beaucoup, ca devrait êtr ela plupart du temps des erreurs de compilation


                      J'ai pas bien compris mais je sens que j'ai tort...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        30 décembre 2005 à 16:26:48

                        N'inclus pas non plus trente-six fois les headers stdlib, stdio, et time. Et fait gafe avec ton fichier de prototype tu inclus fonctions.h dans le main.c et le fonctions.c tu le met à la fin du main.c
                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 décembre 2005 à 16:54:35

                          bon ben le problème, il venait du s en trop... merci, je vais maintenant essayer d'alleger le code, merci a tous!
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Problème de linker...

                          × 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