Compilation C++ avec SDL (problème...)

Résolu/Fermé
Nico - 5 sept. 2007 à 02:22
 loka - 1 avril 2008 à 13:38
Salut à tous,

Je suis en train de programmer un jeu en C++, avec la librairie SDL et SDL_Image et SDL_TTF
Je suis sous Linux Ubuntu et j'ai installé les packages concernant ces trois librairies, et SDL.h, SDL_TTF.h et SDL_image.h dont bien dans mon dossier /include/SDL.

Je tape ceci pour compiler:

g++ -o jeu jeu.cpp `sdl-config --cflags --libs`

Le log d'erreur donné par g++ est:

/tmp/ccoonQfA.o: In function `titre(SDL_Surface*)':
jeu.cpp:(.text+0xf50): undefined reference to `TTF_OpenFont'
jeu.cpp:(.text+0xf6d): undefined reference to `TTF_RenderText_Blended'
jeu.cpp:(.text+0x1163): undefined reference to `TTF_CloseFont'
/tmp/ccoonQfA.o: In function `main':
jeu.cpp:(.text+0x11b7): undefined reference to `TTF_Init'
jeu.cpp:(.text+0x128a): undefined reference to `TTF_Quit'
collect2: ld a retourné 1 code d'état d'exécution

Je ne comprends pas pourquoi il me met ces logs, alors que j'ai installé de la même manière SDL_Image et SDL_TTF, or il ne me fait pas de problème pour SDL_Image :s

PS/ Le projet se compilait convenablement sous Windows avec Dev-cpp, quand j'étais encore sous ce système.

Merci à vous!!
A voir également:

6 réponses

-lSDL -lSDL_Image -lSDL_TTF

mets ca en option de commandes gcc

;)
3
Hey merci beaucoup!! Super ça marche maintenant!!
J'ai enfin un joli exécutable qui se présente :)
0
Déso j'arrive pas à éditer mon message, voici la commande finale, qui fonctionne :

g++ -o jeu jeu.cpp -lSDL -lSDL_image -lSDL_ttf

Encore merci :p
0
lapin-chasseur
28 févr. 2008 à 17:11
Salut SaNkA-MaN.

pour tes erreurs => /usr/local/include/SDL/SDL_ttf.h:33:17: erreur: SDL.h : Aucun fichier ou répertoire de ce type
/usr/local/include/SDL/SDL_ttf.h:34:24: erreur: begin_code.h : Aucun fichier ou répertoire de ce type
/usr/local/include/SDL/SDL_ttf.h:232:24: erreur: close_code.h : Aucun fichier ou répertoire de ce type

fait un copier/coller de tes fichiers d'entêtes (begin_code.h ; SDL.h et close_code.h) dans le repertoire /usr/include ou mieux contruit tes directives d'inclusions de cette façons #include "SDL/fichierinclude.h "
correspondant en fait chemin complet vers tes headers à partir de /usr/include.

sergio
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Si tu ne veux pas te compliquer la vie avec l'édition de lien sous linux, tu peux utiliser ça :
cc `sdl-config --cflags` -Wall -c TestSDL01.c
gcc `sdl-config --libs` -o TestSDL01 TestSDL01.o
0
Bonjour, j'ai eu les même problèmes que toi nico sauf qu'en utilisant la commande :

g++ -o jeu jeu.cpp -lSDL -lSDL_image -lSDL_ttf

j'ai les erreurs suivante :

sanka@sanka-laptop:~/langage_c/test_ttf$ g++ -o jeu main.cpp -lSDL -lSDL_image -lSDL_ttf
Dans le fichier inclus à partir de main.cpp:9:
/usr/local/include/SDL/SDL_ttf.h:33:17: erreur: SDL.h : Aucun fichier ou répertoire de ce type
/usr/local/include/SDL/SDL_ttf.h:34:24: erreur: begin_code.h : Aucun fichier ou répertoire de ce type
/usr/local/include/SDL/SDL_ttf.h:232:24: erreur: close_code.h : Aucun fichier ou répertoire de ce type

J'ai pourtant bien installer les librairies, je comprend pas.
-2