Bonsoir,
Je viens de créer un fichier Makefile pour compiler l'ensemble de mes fichiers mais il ne fonctionne pas.
J'ai 3 fichiers test-vext, un fichier vext.c, un ficher vext.h et le Makefile dans un dossier test.
Les fichiers text-vext ont en en-tête :
#include <memoire.h>
#include <chaine.h>
#include <vext.h>
Le ficher vext.c a en en-tête :
#include <memoire.h>
#include <vext.h>
Les fichiers chaine.o et memoire.o sont dans ../../lib/libtest.a
Le fichiers chaine.h et memoire.h sont dans ../../include
Les erreurs sont :
gcc -g -std=c99 -Wall -I../../include -c -o vext.o vext.c
gcc test-vext-1.o vext.o -lm -L../../lib -o test-vext-1
vext.o: In function `vext_creer':
/home/NOM/DOSSIER/src/test/vext.c:30: undefined reference to `memoire_allouer'
vext.o: In function `vext_liberer':
/home/NOM/DOSSIER/src/test/vext.c:58: undefined reference to `memoire_liberer'
/home/NOM/DOSSIER/src/test/vext.c:59: undefined reference to `memoire_liberer'
vext.o: In function `rallonger':
/home/NOM/DOSSIER/src/test/vext.c:65: undefined reference to `memoire_reallouer'
Voici le Makefile :
D'où peut venir le problème ?
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 CC= gcc CFLAGS= -g -std=c99 -Wall CPPFLAGS= -I../../include LDFLAGS= -lm -L../../lib OUTFILES= test-vext-1 test-vext-2 test-vext-3 all: $(OUTFILES) test-vext-1: vext.o test-vext-1.o $(CC) test-vext-1.o vext.o $(LDFLAGS) -o test-vext-1 test-vext-2: vext.o test-vext-2.o $(CC) test-vext-2.o vext.o $(LDFLAGS) -o test-vext-2 test-vext-3: vext.o test-vext-3.o $(CC) test-vext-3.o vext.o $(LDFLAGS) -o test-vext-3 test-vext-1.o: test-vext-1.c vext.h test-vext-2.o: test-vext-2.c vext.h test-vext-3.o: test-vext-3.c vext.h vext.o: vext.c vext.h clean : rm -f *.o $(OUTFILES)
Merci d'avance
Partager