Problème avec un makefile
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 :
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 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) |
D'où peut venir le problème ?
Merci d'avance