Bonjour,
tous d'abord je m'excuse si je n'ai pas poster ma demande d'aide dans la bonne section, je ne sait pas si le langage makefile est un langage a par entière...
Je travail en ce moment sur un projet en C et voici mon makefile :
Voila comment son organisés mes fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 all : util.o carte outils util.o : Outils/util.c Outils/util.h gcc -c Outils/util.c -Wall -Werror -Wextra -g cp util.o Outils/ outils.o : Outils/outils.c Outils/outils.h util.o gcc -c Outils/outils.c -Wall -Werror -Wextra -g outils : outils.o gcc Outils/*.o -lm -o outils -Wall -Werror -Wextra -g -lncurses carte : carte.o gcc *.o -lm -o carte -Wall -Werror -Wextra -g -lncurses carte.o : carte.c util.o gcc -c carte.c -Wall -Werror -Wextra -g clean: rm -f *.o rm -f /Outils/*.o
Un dossier projet contenant :
-mon makefile,
-carte.c et carte.h
-un dossier Outils
Le dossier Outils contient :
-outils.c et outils.h
-util.c et util.h
Les code carte et outils contiennent toute deux un main et j'aimerai obtenir après compilation deux exécutable distinct(carte et outils), c'est donc pour ça que j'ai mis mes codes outils et util dans un dossier Outils(car "gcc *.o ...." n'accepte qu'un main dans sa liste de fichier *.o afin de creer l'executable) et outils tout comme carte ont un include de util.h.
Ors le condition du projet demande a ce que la totalité du projet ne se compile qu'en une seul et unique commande make.
Je pensais avoir trouvé la solution avec ce makefile mais voila, j'obtien l'erreur suivante lors du make :
Quelqu'un pourrait me venir en aide? je ne suis pas très doué pour le moment en ce qui concerne les makefile et me renvoyer vers une page de tutoriel ou d'information sur les makefile ne m'aidera pas beaucoup a comprendre d’où viens mon erreur... :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 gcc -c Outils/util.c -Wall -Werror -Wextra -g cp util.o Outils/ gcc -c carte.c -Wall -Werror -Wextra -g gcc *.o -lm -o carte -Wall -Werror -Wextra -g -lncurses gcc -c Outils/outils.c -Wall -Werror -Wextra -g gcc Outils/*.o -lm -o outils -Wall -Werror -Wextra -g -lncurses /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 0 a un index de symbole 11 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 1 a un index de symbole 12 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 2 a un index de symbole 2 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 3 a un index de symbole 2 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 4 a un index de symbole 11 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 5 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 6 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 7 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 8 a un index de symbole 12 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 9 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 10 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 11 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 12 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 13 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 14 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 15 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 16 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 17 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 18 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 19 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 20 a un index de symbole 13 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 21 a un index de symbole 22 invalide /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_line): réadressage 0 a un index de symbole 2 invalide /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: dans la fonction « _start »: (.text+0x18): référence indéfinie vers « main » collect2: error: ld returned 1 exit status make: *** [outils] Erreur 1
Partager