jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !
Le problème de ce sujet a été résolu
| Page 1 | |||||||
| Auteur | Message | ||||||
|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||||
| Page 1 | |||||||
Tenebrous
|
# Posté le 14/06/2009 à 01:55:31 | ||||||
![]()
Études : ISAT Charleroi |
Bonsoir à tous.
Je suis actuellement le tutoriel traitant du langage C et je rencontre un petit problème à la section suivante : Les tableaux. Je m'explique : A la toute fin de ce chapitre, M@teo21 nous propose 5 exercices pour nous embêter exercer . Je commence par le premier et suis ses conseils, c'est-à-dire créer plusieurs fichiers différents. J'ai donc mon "main.c" et je crée également "tableaux.c" et "tableaux.h".Dans "tableaux.h", j'ai le prototype de ma fonction "sommeTableau", voici le code : Code : C
Dans "tableaux.c", j'ai le code de ma fonction "sommeTableau" (notez que je n'ai pas oublié le #include "tableau.h") : Code : C
Et, pour finir, dans "main.c" je fais un appel à ma fonction "sommeTableau" (notez une fois de plus que je n'ai pas oublié le #include "tableaux.h") : Code : C
Tout me semble correct, je veux compiler et qu'est-ce qu'on me dit #@!?$~ gentillement ? In function 'main' :undefined reference to '_sommeTableau' J'ai la très nette impression que le problème vient du fait que j'aie séparé mon code en plusieurs fichiers car j'ai essayé de tout mettre dans le "main.c" (en n'utilisant donc plus "tableaux.h" et "tableaux.c") et là j'obtiens le résultat escompté Voili voilou, j'espère que vous pourrez m'aider à résoudre ce petit problème. Vu l'heure, je pense que je vais opter pour un "Bonne nuit" plutôt que "Bonne soirée"
So I said, "This is very obviously a Piero della Francesca." |
||||||
| Publicité | # Posté le 14/06/2009 à 01:55:31 | ||||||
|
|
|||||||
Floooder
|
# Posté le 14/06/2009 à 02:13:34 | ||||||
|
|
Tu compiles comment? (IDE, ligne de commande?)
|
||||||
Divine-Quest
|
# Posté le 14/06/2009 à 02:45:48 | ||||||
|
MMORPG : Divine Quest
|
Salut,
dans ton main.c : tu indiques "tableaux.h" alors que dans ton fichier tableau.c, tu indiques "tableau.h". Je pense que ton erreur vient de là
Divine Quest : En train de coder le moteur : Divine Quest Engine (15%) |
||||||
rz0
|
# Posté le 14/06/2009 à 13:29:27 | ||||||
Papa Ours.![]()
Études : Ensimag |
Il faut ajouter tous tes fichiers .c à ton projet, si tu utilises un IDE, ou tous les spécifier sur la ligne de commande si tu compiles en console.
Relis http://www.siteduzero.com/tutoriel-3-13993-la-programmation-modulaire.html#ss_part_3. m@t doit en parler. |
||||||
Tenebrous
|
# Posté le 14/06/2009 à 14:07:39 | ||||||
![]()
Études : ISAT Charleroi |
Merci pour vos réponses.
Floooder ~~~> J'utilise CodeBlocks donc j'appuie bêtement sur F9 pour compiler et exécuter Divine-Quest ~~~> Effectivement, j'avais oublié le "x" hier car j'avais essayé de modifier plein de trucs pour voir si ça ne résolvait pas le problème mais j'avais déjà essayé de compiler avant quand le "x" y était (et je viens encore de ré-essayer après avoir corrigé) mais sans succès rz0 ~~~> Je pense que c'est ok, j'ai lu et relu ce chapitre pour être sûr de n'avoir commis aucune erreur. Voici un screen sous CodeBlocks pour te montrer que tous les fichiers font bien partie du projet : Ici So I said, "This is very obviously a Piero della Francesca." |
||||||
rz0
|
# Posté le 14/06/2009 à 14:26:20 | ||||||
Papa Ours.![]()
Études : Ensimag |
Je ne connais pas Code::Blocks mais ptet que F9 ne compile que le fichier actuel... en tout cas, le problème c'est qu'il ne lie pas tous les fichiers entre eux.
|
||||||
Tenebrous
|
# Posté le 14/06/2009 à 14:59:17 | ||||||
![]()
Études : ISAT Charleroi |
Problème résolu !
En fait, pour ajouter des fichiers au projet, il fallait procéder de la manière suivante : - Aller dans l'onglet "Projet" puis dans "Add files..." - Choisir les fichiers à ajouter ; dans mon cas "tableaux.c" et "tableaux.h" - Seulement, et c'est de là que venait l'erreur, lorsqu'on ajoute un fichier, Code::Blocks ouvre une fenêtre avec "Debug" et "Release" que l'on peut cocher ou pas. J'ai coché les deux options pour chaque fichier (le .h et le .c) et ça marche. Voilà, en espérant que ça pourra servir à quelqu'un d'autre s'il rencontre le même problème.
So I said, "This is very obviously a Piero della Francesca." |
||||||
JulianKTH
|
# Posté le 04/11/2009 à 17:03:36 | ||||||
Semper Fidelis![]()
|
Merci pour les explications Tenebrous (et ceux qui l'ont aidé!), j'ai rencontré ton problème et effectivement ta procédure le résout.
J'ajouterai que sous CodeBlock, avant de faire F9, tu peux faire Ctrl+F11, ce qui va reconstruire entièrement ton projet. Puis si tu n'as pas d'erreur, alors faire un F9. Voilou EDIT: Autre chose, il faut bien vérifier que le fichier 'main' possède bien l'extension voulue: je m'explique, j'ai aussi rencontré l'erreur décrite lors d'un projet SDL en C et le problème venait tout bêtement qu'à la création, CodeBlocks avais créé par défaut un 'main.cpp' (pour du C++) et non 'main.c', et moi en zéro que je suis, ai mis un bon moment à comprendre
! Donc j'ai créé un 'main.c', copier le code dedans, supprimer le 'main.cpp', ai ajouter le nouveau 'main.c' à mon projet, et miracle (en fait non pure logique), ça tourne impec!
Édité
le 06/11/2009 à 13:38:47
par JulianKTH
Attend SC2 avec impatience... |
||||||
netenxus
|
# Posté le 28/02/2012 à 12:34:35 | ||||||
|
|
Oh.. Merci beaucoup a vous ! Cela fait maintenant pas mal d'heures que je recherche mon problème sur la toile, et grâce a vous je vais pouvoir continuer mon projet, je vous remercie infiniment !
|
||||||
Retour au forum "Langage C" ou à la liste des forums
