Bonjour,

Je suis étudiant et mon professeur m'a donné un projet à réaliser en programmation 3D. Avec un makefile qui permet de compiler mon fichier .cpp
J'ai du télécharger une librairie pour manipuler plus facilement des textures et malheureusement je ne sais vraiment pas comment modifier le fichier makefile pour intégrer à la compilation l'utilisation d'un autre fichier.
Je me suis renseigné sur le net et bien que j'ai compris le fonctionnement d'un makefile, je n'ai aucune idée de comment modifier le makefile de mon professeur que je ne comprends pas. J'arrive donc à demander votre aide car je perds un temps précieux puisque je n'ai pas un mais 4 projets informatiques qui nous ont été donnés en début de mois avec comme délais 30 jours. En somme je suis un poil pressé ^^

Voici le fameux makefile, je l'ai un tantinet modifié et pimpé mais je ne sais toujours pas comment ajouter le fait de compiler un autre fichier cpp et de compiler les 2 .o :

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
 
#Makefile Linux
EXEC = projet
COMPILO = g++
*
GLUT_INC=
GLUT_LIBS=-lglut -lGLU
GL_INC=
GL_LIBS= -lGL
*
#Chemin d'acces des includes
CXXINCS =* $(GLUT_INC) $(GL_INC)
*
#Parametres de compilation
CXXFLAGS = $(CXXINCS) -Wall
*
#Chemin d'acces des librairies
LIBS = $(GL_LIBS) $(GLUT_LIBS)
*
#Chemin d'acces des .h et .cpp (qui pourraient etre ailleurs que dans le répertoire principal)
PATH_INC=.
PATH_SRC=.
*
#Cree l'executable sous Linux
all: $(EXEC)
 
# problème ici, quand je compile comme ceci j'ai un message d'erreur
$(EXEC): projet.o sdlglutils.o
	$(COMPILO) -o $@ $^ $(LIBS)
 
projet.o:* $(PATH_SRC)/projet.cpp
        $(COMPILO) -o $@ -c $< $(CXXFLAGS)
 
sdlglutils.o:* $(PATH_SRC)/sdlglutils.cpp
****$(COMPILO) -o $@ -c $< $(CXXFLAGS)
*
#Efface les fichiers .o
clean:
****rm -rf *.o
voici le message d'erreur :

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: dans la fonction « _start »:
/build/glibc-ryFjv0/glibc-2.21/csu/../sysdeps/x86_64/start.S:114: référence indéfinie vers « main »
sdlglutils.o: dans la fonction « loadTexture(char const*, bool) »:
sdlglutils.cpp:(.text+0x40): référence indéfinie vers « IMG_Load »
sdlglutils.cpp:(.text+0xe0): référence indéfinie vers « SDL_ConvertSurface »
sdlglutils.cpp:(.text+0x105): référence indéfinie vers « glGenTextures »
sdlglutils.cpp:(.text+0x114): référence indéfinie vers « glBindTexture »
sdlglutils.cpp:(.text+0x154): référence indéfinie vers « gluBuild2DMipmaps »
sdlglutils.cpp:(.text+0x16c): référence indéfinie vers « glTexParameteri »
sdlglutils.cpp:(.text+0x1b2): référence indéfinie vers « glTexImage2D »
sdlglutils.cpp:(.text+0x1ca): référence indéfinie vers « glTexParameteri »
sdlglutils.cpp:(.text+0x1de): référence indéfinie vers « glTexParameteri »
sdlglutils.cpp:(.text+0x1ea): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.cpp:(.text+0x1f6): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.cpp:(.text+0x202): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.o: dans la fonction « takeScreenshot(char const*) »:
sdlglutils.cpp:(.text+0x247): référence indéfinie vers « glGetIntegerv »
sdlglutils.cpp:(.text+0x28e): référence indéfinie vers « SDL_CreateRGBSurface »
sdlglutils.cpp:(.text+0x2a2): référence indéfinie vers « SDL_LockSurface »
sdlglutils.cpp:(.text+0x2ce): référence indéfinie vers « glReadPixels »
sdlglutils.cpp:(.text+0x2de): référence indéfinie vers « SDL_UnlockSurface »
sdlglutils.cpp:(.text+0x2ff): référence indéfinie vers « SDL_RWFromFile »
sdlglutils.cpp:(.text+0x316): référence indéfinie vers « SDL_SaveBMP_RW »
sdlglutils.cpp:(.text+0x332): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.cpp:(.text+0x33e): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.o: dans la fonction « flipSurface(SDL_Surface*) »:
sdlglutils.cpp:(.text+0x3be): référence indéfinie vers « SDL_CreateRGBSurface »
sdlglutils.cpp:(.text+0x3d2): référence indéfinie vers « SDL_LockSurface »
sdlglutils.cpp:(.text+0x3de): référence indéfinie vers « SDL_LockSurface »
sdlglutils.cpp:(.text+0x456): référence indéfinie vers « SDL_UnlockSurface »
sdlglutils.cpp:(.text+0x462): référence indéfinie vers « SDL_UnlockSurface »
sdlglutils.o: dans la fonction « drawAxis(double) »:
sdlglutils.cpp:(.text+0x47f): référence indéfinie vers « glPushAttrib »
sdlglutils.cpp:(.text+0x484): référence indéfinie vers « glPushMatrix »
sdlglutils.cpp:(.text+0x48e): référence indéfinie vers « glDisable »
sdlglutils.cpp:(.text+0x498): référence indéfinie vers « glDisable »
sdlglutils.cpp:(.text+0x4a2): référence indéfinie vers « glEnable »
sdlglutils.cpp:(.text+0x4ac): référence indéfinie vers « glEnable »
sdlglutils.cpp:(.text+0x4b9): référence indéfinie vers « glLineWidth »
sdlglutils.cpp:(.text+0x4c8): référence indéfinie vers « glBlendFunc »
sdlglutils.cpp:(.text+0x4ec): référence indéfinie vers « glScaled »
sdlglutils.cpp:(.text+0x4f6): référence indéfinie vers « glBegin »
sdlglutils.cpp:(.text+0x50a): référence indéfinie vers « glColor3ub »
sdlglutils.cpp:(.text+0x51e): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x532): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x546): référence indéfinie vers « glColor3ub »
sdlglutils.cpp:(.text+0x55a): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x56e): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x582): référence indéfinie vers « glColor3ub »
sdlglutils.cpp:(.text+0x596): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x5aa): référence indéfinie vers « glVertex3i »
sdlglutils.cpp:(.text+0x5af): référence indéfinie vers « glEnd »
sdlglutils.cpp:(.text+0x5b4): référence indéfinie vers « glPopMatrix »
sdlglutils.cpp:(.text+0x5b9): référence indéfinie vers « glPopAttrib »
sdlglutils.o: dans la fonction « initFullScreen(unsigned int*, unsigned int*) »:
sdlglutils.cpp:(.text+0x5db): référence indéfinie vers « SDL_ListModes »
sdlglutils.cpp:(.text+0x632): référence indéfinie vers « SDL_GetVideoInfo »
sdlglutils.cpp:(.text+0x665): référence indéfinie vers « SDL_SetVideoMode »
sdlglutils.o: dans la fonction « XPMFromImage(char const*, char const*) »:
sdlglutils.cpp:(.text+0x6a8): référence indéfinie vers « IMG_Load »
sdlglutils.cpp:(.text+0x70c): référence indéfinie vers « SDL_CreateRGBSurface »
sdlglutils.cpp:(.text+0x72e): référence indéfinie vers « SDL_UpperBlit »
sdlglutils.cpp:(.text+0x73a): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.cpp:(.text+0x8e5): référence indéfinie vers « SDL_LockSurface »
sdlglutils.cpp:(.text+0x98d): référence indéfinie vers « SDL_GetRGBA »
sdlglutils.cpp:(.text+0xa46): référence indéfinie vers « SDL_UnlockSurface »
sdlglutils.cpp:(.text+0xa52): référence indéfinie vers « SDL_FreeSurface »
sdlglutils.o: dans la fonction « cursorFromXPM(char const**) »:
sdlglutils.cpp:(.text+0xce5): référence indéfinie vers « SDL_CreateCursor »
collect2: error: ld returned 1 exit status
Voici l’aperçu du dossier de mon projet :
Nom : Capture du 2016-03-08 22-35-55.png
Affichages : 1697
Taille : 20,4 Ko