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 : 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)
D'où peut venir le problème ?

Merci d'avance