"multiple definition of" pour une fonction.
Bonjours.
Je vous explique mon problème. J'ai un source "Trieur.c" et un header "Trieur.h"
voici leurs code:
Trieur .h
Code:
1 2 3 4 5 6 7
|
#ifndef TRIEUR_H_
#define TRIEUR_H_
int Triage(short *, int);
#endif /* TRIEUR_H_ */ |
Trieur.c
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#include <stdio.h>
#include <stdlib.h>
#include "trieur.h"
/* fonction utilisateur de comparaison fournie a qsort() */
static int compare (void const *a, void const *b)
{
/* definir des pointeurs type's et initialise's
avec les parametres */
int const *pa = a;
int const *pb = b;
/* evaluer et retourner l'etat de l'evaluation (tri croissant) */
return *pa - *pb;
}
int Triage(short *tab, int choix)
{
qsort(tab, sizeof tab / sizeof *tab, sizeof *tab, compare);
return 0;
} |
Le fichier trieur.c n'est pas le source du main principal (qui n'a pas été codé d'ailleurs).
Je ne fais pas d'autre référence à la fonction Triage.
résultat de compilation
Code:
1 2 3 4 5 6 7 8 9
|
Building target: Exo_tri_valeur
Invoking: GCC C Linker
gcc -o"Exo_tri_valeur" ./src/Exo_tri_valeur.o ./src/interface.o ./src/trieur.o
./src/trieur.o: In function `Triage':
/home/ikoria/workspace_eclipse/Exo_tri_valeur/Debug/../src/trieur.c:27: multiple definition of `Triage'
./src/Exo_tri_valeur.o:/home/ikoria/workspace_eclipse/Exo_tri_valeur/Debug/../src/trieur.c:27: first defined here
collect2: ld a retourné 1 code d'état d'exécution
make: *** [Exo_tri_valeur] Erreur 1 |
Je ne comprend pas pourquoi il me sort multiple valeur "triage"...
Merci par avance pour votre aide ^^.
Iko