Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/04/2015, à 00:21

P141592653

[C++] Compiler avec gcc un programme utilsant la SDL2.0

Bonjour !
Je sais que ce sujet a été plusieurs fois abordé mais aucun des sujets que j'ai vu n'a résolu mon problème. J'ai un projet basique dans lequel j'utilise la SDL 2.0. il y a un fichier main.cpp dans lequel j'utilise la SDL2.0 et un fichier fonctions.cpp qui n'utilise pas la SDL. J'utilise ce makefile pour compiler :

Programme : main.o fonctions.o
	g++ main.o fonctions.o -o Programme
main.o : main.cpp fonctions.cpp
	g++ -c main.cpp  -o main.o  `sdl2-config --cflags --libs`
fonctions.o : fonctions.cpp
	g++ -c fonctions.cpp -o fonctions.o

Lorsque je tape

make Programme

dans la console, je récupère le résultat suivant :

g++ main.o fonctions.o -o Programme
main.o: dans la fonction « main »:
main.cpp:(.text+0x78): référence indéfinie vers « SDL_CreateWindow »
main.cpp:(.text+0x8e): référence indéfinie vers « SDL_GetError »
main.cpp:(.text+0xdb): référence indéfinie vers « SDL_CreateRenderer »
collect2: error: ld returned 1 exit status
make: *** [Programme] Erreur 1

Je n'arrive pas à compiler correctement. Quelqu'un saurait-il pourquoi?
Merci d'avance.

Hors ligne

#2 Le 26/04/2015, à 06:59

pingouinux

Re : [C++] Compiler avec gcc un programme utilsant la SDL2.0

Bonjour,
Je ne suis pas un spécialiste des makefiles, mais j'aurais placé la référence à sdl2 ici :

	g++ main.o fonctions.o -o Programme `sdl2-config --cflags --libs`

Hors ligne

#3 Le 26/04/2015, à 11:42

grim7reaper

Re : [C++] Compiler avec gcc un programme utilsant la SDL2.0

Salut,

Ici :

main.o : main.cpp fonctions.cpp
	g++ -c main.cpp  -o main.o  `sdl2-config --cflags --libs`

tu compiles le fichier, tu as seulement besoin de --cflags je pense.

Là :

Programme : main.o fonctions.o
	g++ main.o fonctions.o -o Programme

Tu fais l’éditions des liens, tu auras donc besoin des bibliothèques.

Du coup, ton Makefile serait :

Programme : main.o fonctions.o
	g++ main.o fonctions.o -o Programme `sdl2-config --libs`
main.o : main.cpp fonctions.cpp
	g++ -c main.cpp  -o main.o  `sdl2-config --cflags`
fonctions.o : fonctions.cpp
	g++ -c fonctions.cpp -o fonctions.o

Hors ligne