Bonjour,
Je suis entrain de monter un moteur 2D en c++ en utilisant un peu de SDL_Image (pour charger les images ) .
Seulement à la compilation j'ai un problème de linkage :
Voici le code de mon makefile :$ make
g++ -Wall -Werror -o3 -L/usr/lib/ -lILU -lIL -lSDL_image -lSDL `sdl-config --cflags` `sdl-config --libs` -o image.out Image.o
Image.o(.gnu.linkonce.t._ZN5Image8setImageEPc[Image::setImage(char*)]+0xcf): In function `Image::setImage(char*)':
Image.cpp: undefined reference to `IMG_Load'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [image.out] Erreur 1
J'ai bien vérifié que dans /usr/lib se trouve les librairies SDL et les header dans /usr/include.
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 .PHONY: all .SUFFIXES: .SUFFIXES: .c++ .o #Liste des maccros CC = g++ CFLAGS = -c DIRLIBS = -L/usr/lib/ LIBS = -lILU -lIL -lSDL_image -lSDL `sdl-config --cflags` `sdl-config --libs` OPTS = -Wall -Werror -o3 EXE = image.out MAIN = main.cpp IMAGE = Image.cpp Image.h OBJ = Image.o all : $(EXE) $(EXE) : $(OBJ) $(CC) $(OPTS) $(DIRLIBS) $(LIBS) -o $(EXE) $(OBJ) #main.o : $(MAIN) # $(CC) $(CFLAGS) $(MAIN) Image.o : $(IMAGE) $(CC) $(CFLAGS) $(IMAGE) clean : rm -f $(EXE) *.o *~ *.core
Ma ligne de compilation contient bien le -lSDL_image et donc je ne comprend pas mon erreur.
J'aurais aimé aussi savoir à quoi servent les : `sdl-config --cflags` `sdl-config --libs`.
Je m'excuse d'avance si ce thread devait se situer dans la parti compilation, mais étant spécifique a SDL, j'ai pensé à le poster ici.
Merci d'avance
Partager