A voir également:
- Probléme de lancement de programme lors de la compilation en C
- Programme demarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
- Lancer un programme au demarrage - Guide
- Désinstaller programme windows 10 - Guide
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 15 avril 2019 à 12:44
Modifié le 15 avril 2019 à 12:44
Salut Nazimsh,
Voilà les messages d'erreur que devrait produire la tentative de compilation de ton code avec gcc (testé en ligne de commande sous Linux avec gcc 6.3.0) :
Il est très étonnant que Codeblocks ne te fournisse aucun message d'erreur.
Fait
Sinon, il y a pas mal de problèmes dans ton code, le plus visible étant que tu appelles des fonctions inexistantes, un autre étant que et que tu utilises un
Pour t'aider à comprendre comment utiliser les .h, tu peux lire ce polycopié d'un professeur de l'Université du Michigan, David Kieras, que je trouve très clair :
http://umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf
Dal
Voilà les messages d'erreur que devrait produire la tentative de compilation de ton code avec gcc (testé en ligne de commande sous Linux avec gcc 6.3.0) :
$ gcc -Wall main.c cal.h main.c: In function ‘main’: main.c:16:4: warning: implicit declaration of function ‘sum’ [-Wimplicit-function-declaration] sum(); ^~~ main.c:19:4: warning: implicit declaration of function ‘sub’ [-Wimplicit-function-declaration] sub(); ^~~ main.c:22:4: warning: implicit declaration of function ‘mul’ [-Wimplicit-function-declaration] mul(); ^~~ main.c:25:4: warning: implicit declaration of function ‘DIV’ [-Wimplicit-function-declaration] DIV(); ^~~ main.c:28:4: warning: implicit declaration of function ‘SIN’ [-Wimplicit-function-declaration] SIN(); ^~~ main.c:31:4: warning: implicit declaration of function ‘COS’ [-Wimplicit-function-declaration] COS(); ^~~ main.c:34:4: warning: implicit declaration of function ‘TAN’ [-Wimplicit-function-declaration] TAN(); ^~~ main.c:37:4: warning: implicit declaration of function ‘POW’ [-Wimplicit-function-declaration] POW(); ^~~ main.c:40:4: warning: implicit declaration of function ‘SQRT’ [-Wimplicit-function-declaration] SQRT(); ^~~~ cal.h: In function ‘Menu’: cal.h:6:2: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration] printf("les operations desponibles : \n"); ^~~~~~ cal.h:6:2: warning: incompatible implicit declaration of built-in function ‘printf’ cal.h:6:2: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’ /tmp/ccP3j7fb.o : Dans la fonction « .L4 » : main.c:(.text+0x12d) : référence indéfinie vers « sum » /tmp/ccP3j7fb.o : Dans la fonction « .L6 » : main.c:(.text+0x134) : référence indéfinie vers « sub » /tmp/ccP3j7fb.o : Dans la fonction « .L7 » : main.c:(.text+0x13b) : référence indéfinie vers « mul » /tmp/ccP3j7fb.o : Dans la fonction « .L8 » : main.c:(.text+0x142) : référence indéfinie vers « DIV » /tmp/ccP3j7fb.o : Dans la fonction « .L9 » : main.c:(.text+0x149) : référence indéfinie vers « SIN » /tmp/ccP3j7fb.o : Dans la fonction « .L10 » : main.c:(.text+0x150) : référence indéfinie vers « COS » /tmp/ccP3j7fb.o : Dans la fonction « .L11 » : main.c:(.text+0x157) : référence indéfinie vers « TAN » /tmp/ccP3j7fb.o : Dans la fonction « .L12 » : main.c:(.text+0x15e) : référence indéfinie vers « POW » /tmp/ccP3j7fb.o : Dans la fonction « .L13 » : main.c:(.text+0x165) : référence indéfinie vers « SQRT » collect2: error: ld returned 1 exit status $
Il est très étonnant que Codeblocks ne te fournisse aucun message d'erreur.
Fait
Build - Clean, puis
Build - Rebuildet fais un copier-coller du contenu intégral de l'onglet
Build logen bas de ton interface.
Sinon, il y a pas mal de problèmes dans ton code, le plus visible étant que tu appelles des fonctions inexistantes, un autre étant que et que tu utilises un
.hpour y mettre l'implémentation d'une fonction au lieu de te servir de cet entête
cal.hseulement pour déclarer son prototype, en mettant l'implémentation dans un autre fichier
cal.c. Si tu fais comme tu as fait, tu ne pourras pas utiliser la fonction dans plus d'un fichier source, ce qui n'est pas le but dans une approche modulaire de la programmation.
Pour t'aider à comprendre comment utiliser les .h, tu peux lire ce polycopié d'un professeur de l'Université du Michigan, David Kieras, que je trouve très clair :
http://umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf
Dal
Modifié le 15 avril 2019 à 23:02