Salut !

Je compile mes programmes (en C++) sous Linux grace a la commande toute bête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
g++ -g -W -Wall -mmmx  -msse3 -m3dnow -pedantic *.cpp */*/*.cpp */*/*/*.cpp -o VMAP_ENGINE -lSDL -lGLU -lSDL_image
(aucune error ni aucun warning)

Mais qui est assez "brouillon". Donc, j' essaye de passer au Makefile. Mais voila j' obtiens a chaque fonction appelé dans un fichier objet et defini dans un autre une erreur de linkage... (du moins, je crois)

Voici mon 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
CC = g++
CFLAGS = -g -W -Wall -mmmx  -msse3 -m3dnow -pedantic
LDFLAGS = -lSDL -lGLU -lSDL_image
 
OBJ = main.o DataManager.o Divers.o
 
VMAP_ENGINE : $(OBJ)
	$(CC) $^ -o $@ $(LDFLAGS)
 
 #--- MAIN BUILD ---#
main.o : main.cpp
	$(CC) main.cpp -c $(CFLAGS)
 #------ END -------#
 
 
 #--- SUB BUILD ---#
DataManager.o : File.o Texture.o ./VMAP/DataManager/DataManager.h ./VMAP/DataManager/DataManager.cpp
	$(CC) -c ./VMAP/DataManager/DataManager.cpp File.o Texture.o -o $@
 
Divers.o : ./VMAP/Divers/VMAP.h ./VMAP/Divers/VMAP.cpp
	$(CC) -c ./VMAP/Divers/VMAP.cpp -o $@
 #------ END ------#
 
 
 #--- DATAMANAGER BUILD ---#
Texture.o : ./VMAP/DataManager/Texture/VTEXTURE.h ./VMAP/DataManager/Texture/VTEXTURE.cpp
	$(CC) -c ./VMAP/DataManager/Texture/VTEXTURE.cpp $(CFLAGS)
 
File.o : ./VMAP/DataManager/File/VFILE.h ./VMAP/DataManager/File/VFILE.cpp Attribute.o Dio.o
	$(CC) -c ./VMAP/DataManager/File/VFILE.cpp $(CFLAGS)
 #---------- END ----------#
 
 
 #--- DIVERS BUILD ---#
    #nothing to do for the moment
 #--------- END ------#
 
 #--- SUBFILE BUILD ---#
Attribute.o : ./VMAP/DataManager/File/ATTRIBUTE.cpp ./VMAP/DataManager/File/COLOR.cpp ./VMAP/DataManager/File/VERTEX.cpp ./VMAP/DataManager/File/ATTRIBUTE.h ./VMAP/DataManager/File/COLOR.h ./VMAP/DataManager/File/VERTEX.h
	$(CC) -c ./VMAP/DataManager/File/ATTRIBUTE.cpp ./VMAP/DataManager/File/COLOR.cpp ./VMAP/DataManager/File/VERTEX.cpp $(CFLAGS)
 
Dio.o : ./VMAP/DataManager/File/DIO.cpp ./VMAP/DataManager/File/DIO.h Attribute.o
	$(CC) -c ./VMAP/DataManager/File/DIO.cpp $(CFLAGS)
 #-------- END --------#
En fait ce que je veux faire c' est: "compiler" Attribute.o et Dio.o puis les lier dans le fichier objet File.o, puis lier ce fichier (File.o) avec Texture.o, ce qui donne le fichier DataManager.o. Les erreurs de linkage que j' ai provienne de DataManager.cpp qui est utilisé dans la construction de DataManager.o: DataManager.cpp appelle des fonctions contenus dans VFILE.cpp et VTEXTURE.cpp. Ces fonctions ne sont donc pas trouvé par le linker.

Merci d'avance.