Erreur "fonction" is multiply-defined... - C - Programmation
Marsh Posté le 15-11-2005 à 11:21:19
FrenchFrogger a écrit : Voilà, j'ai un fichier C qui marche sans problème, avec include <stdio.h> et "memoire.h". |
Classique problème de mauvaise organisation du code...
http://mapage.noos.fr/emdel/codage [...] ser_source
http://mapage.noos.fr/emdel/codage.htm#organiser
Marsh Posté le 15-11-2005 à 11:21:56
Pour quelle raison étrange est-ce que tu includes un .c?
Marsh Posté le 15-11-2005 à 11:16:53
Voilà, j'ai un fichier C qui marche sans problème, avec include <stdio.h> et "memoire.h".
Mais lorsque je sépare ce fichier en plusieurs fichiers j'ai ce problème lors de la compilation (sous Unix, par X-WIN32):
{ibaneza} 43 >make partition2Q1.e
gcc -c -ansi -g -I/Public/INF231_Public/include utilitaires-ListeEnt.c
gcc -g -I/Public/INF231_Public/include -o partition2Q1.e partition2Q1.c /Public/INF231_Public/lib/memoire.o utilitaires-ListeEnt.o -lm
ld: fatal: symbol `AjouterEnQueue' is multiply-defined:
(file /var/tmp//cci2Mtob.o type=FUNC; file utilitaires-ListeEnt.o type=FUNC);
ld: fatal: symbol `CreerListeSingleton' is multiply-defined:
(file /var/tmp//cci2Mtob.o type=FUNC; file utilitaires-ListeEnt.o type=FUNC);
ld: fatal: symbol `AjouterEnTete' is multiply-defined:
(file /var/tmp//cci2Mtob.o type=FUNC; file utilitaires-ListeEnt.o type=FUNC);
ld: fatal: symbol `AfficherListeEnt' is multiply-defined:
(file /var/tmp//cci2Mtob.o type=FUNC; file utilitaires-ListeEnt.o type=FUNC);
ld: fatal: File processing errors. No output written to partition2Q1.e
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `partition2Q1.e'
{ibaneza} 44 >
Voici le code source:
types.h:
utilitaires-ListeEnt.h:
utilitaires-ListeEnt.c:
partition2Q1.c:
Je compile avec un Makefile livré par les profs, et qui marche sans problème pour les autres fichiers...
Allouer(...,...) est défini dans memoire.h et marche sans problème (déjà testé)...
Les contenus de partition2Q1.c, utilitaires-ListeEnt.c, utilitaires-ListeEnt.h, types.h se trouvaient dans un seul et même fichier, partitionQ1.c qui compilait sans problème...