Bonjour.
J'ai un petit programme avec différents modules qui se construit ainsi.
[ ] représente la relation d'inclusion, par exemple, A [B] signifie que B est inclu dans A.
J'ai donc.

main.c[A[B[C[D]]]]

Voici la tête de mon makefile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
A.o : A.c A.h B.h B.o
	$(CC) $(CFLAGS) -c  $< B.o $(LIBDIR) $(LIBRARIES)  
B.o : B.c B.h C.h C.o
	$(CC) $(CFLAGS) -c  $< C.o $(LIBDIR) $(LIBRARIES)  
C.o : C.c C.h D.h D.o
	$(CC) $(CFLAGS) -c  $< D.o $(LIBDIR) $(LIBRARIES)  
D.o : D.c D.h
	$(CC) $(CFLAGS) -c  $< $(LIBDIR) $(LIBRARIES)
une fois que j'ai A.o, il faut que je génère le binaire main
j'ai fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
main : main.c A.o
	$(CC) $(CFLAGS) main.c -o main A.o $(LIBDIR) $(LIBRARIES)
Et j'ai des undef pour tout.
Pourtant, chaque .o ne contient il pas toutes les définitions précédentes ?
si je change cette ligne en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
main : main.c A.o
	$(CC) $(CFLAGS) main.c -o main *.o $(LIBDIR) $(LIBRARIES)
Il y a des définitions multiples.

Auriez vous une solution?
Merci d'avance.