Undefined reference to

Fermé
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012 - 11 mai 2012 à 11:55
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 13 mai 2012 à 22:51
Bonjour,

Bonjour,

J'essaye de compiler un programme de test mais j'obtiens ceci :

test_vecteurs_creux.c:32:1: error: unterminated argument list invoking macro "assert"
test_vecteurs_creux.c: In function `main':
test_vecteurs_creux.c:17: error: `assert' undeclared (first use in this function)
test_vecteurs_creux.c:17: error: (Each undeclared identifier is reported only once
test_vecteurs_creux.c:17: error: for each function it appears in.)
test_vecteurs_creux.c:17: error: expected `;' at end of input
test_vecteurs_creux.c:17: error: expected declaration or statement at end of input

Je me comprends pas pourquoi les asserts ne sont pas reconnus alors que j'ai fait l'inclusion, de même il ne reconnait pas les fonctions de VecteursCreux.h

Voici le programme :

#include "VecteursCreux.h"
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>


int main() {

VecteurCreux v;

init_vecteur_creux(&v);
assert(est_nul(&v);
set_element_vect(&v,1,1.2);
assert(get_element(&v,0) == 0.0);
assert(get_element(&v,1) == 1.2);
assert(get_element(&v,2) == 0.0);
set_element_vect(&v,2,2.2);
assert(get_element(&v,0) == 0.0);
assert(get_element(&v,1) == 1.2);
assert(get_element(&v,2) == 2.2);
set_element_vect(&v,1,0.0);
assert(get_element(&v,0) == 0.0);
assert(get_element(&v,1) == 0.0);
assert(get_element(&v,2) == 2.2);

}


merci d'avance pour vos réponses.











A voir également:

6 réponses

salut,

il te manque une parenthèse fermante ici :
assert(est_nul(&v);

il faut
assert(est_nul(&v));
0
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012
Modifié par baka no emily le 11/05/2012 à 14:38
Tout simplement ! Merci beaucoup

Ceci étant dit maintenant j'obtiens :

/tmp/cckambvf.o: In function 'main':
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:16: undefined reference to 'init_vecteur_creux'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:17: undefined reference to 'est_nul'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:18: undefined reference to 'set_element_vect'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:19: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:20: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:21: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:22: undefined reference to 'set_element_vect'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:23: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:24: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:25: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:26: undefined reference to 'set_element_vect'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:27: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:28: undefined reference to 'get_element'
/home/kabia/Langage C/BE01-kabia/test_vecteurs_creux.c:29: undefined reference to 'get_element'
collect2: ld returned 1 exit status


en d'autres termes il ne reconnait pas mes fonctions pourtant j'ai bien inclus le .h
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
11 mai 2012 à 16:07
donne nous ta ligne (ou tes lignes) de compilation
0
Bonjour,
Tu utilises le signe == qui est un opérateur de comparaison.
Mais on ne voit aucun test if qui exploite ces comparaisons. Curieux.
:)
0
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012
11 mai 2012 à 15:40
Je n'ai pas bien compris. Il s'agit juste de vérifier que les fonctions font bien ce qu'on leur demande en fait.
0
je ne suis pas spécialiste en C, je voulais juste attirer ton attention sur l'usage du signe ==
c'est cette ecriture qui m'a fait réagir
assert(get_element(&v,0) == 0.0);

par exemple dans cette ligne, moi je lis que la fonction assert reçoit comme argument VRAI si get_element(&v,0) == 0.0 et FAUX dans le cas contraire.

est-ce ce que je me trompe?
0
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012
13 mai 2012 à 14:22
Oui oui c'est bien ça
0
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012
13 mai 2012 à 14:22
Enfin le programme va s'arrêter si cela n'est pas vérifié en fait
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
13 mai 2012 à 15:22
Bonjour,

Le message d'erreur est clair :
undefined reference to 'init_vecteur_creux' etc.
En gros, il ne connaît pas la fonction init_vecteur_creux lors de l'édition des liens.
La fonction est-elle bien définie dans un .c et compiler avant ?
Faudrait savoir comment tu compiles. Si tu compiles juste ce fichier, c'est normal que ça ne marche pas.
0
baka no emily Messages postés 56 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 13 mai 2012
13 mai 2012 à 15:54
Oui je compilais que ce fichier oui. Pourquoi normal ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
13 mai 2012 à 16:13
Beh, le fichier que tu compiles a besoin de certaines fonctions comme init_vecteur_creux. Tu as déclaré le prototype dans ton fichier .h, mais lors de l'édition des liens ton programme ne trouvera pas en mémoire le code correspondant à ta fonction.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 mai 2012 à 22:51
D'où ma demande de ligne de compilation
0