Je sais bien qu'il s'agit d'une erreur courante et probablement liée à l'installation mais j'ai refait l'installation une bonne dizaine de fois sans arriver a un résultat correct.
J'utilise la SDL 1.2, SDL_image marche parfaitement et même fmod. J'ai mis la sdl1.2, sdl_image et sdl_ttf dans le même dossier, qui n'est pas dans le même que CodeBlocks (que j'utilise comme IDE).
Je remarque déjà que dans l'include que tu nous présente , tu n'as pas mis SDL/SDL.h entre chevrons, mais entre guillemets. Si tu as procédé de même dans tes fichiers de code , je t'invite à corriger ceci (je ne sais pas si ça résoudra ton problème).
Est-ce que tu as bien téléchargé SDLTTF en version 1.2 ? (il existe une version sdl_ttf 2.0 pour sdl 2.0)
Sinon, regarde bien dans l'onglet Linker settings que tu as mentionné plus haut si le chemin 'linker' était bien pour ton projet global (et pas seulement pour 'Release' ou 'Debug' par exemple)
Tu as dans la fenêtre ouverte par 'Project >> BuildOptions' une colonne à gauche où tu as le nom de ton projet puis (généralement si tu ne fais pas de modifications à propos de ça) juste en-dessous 'Debug' et 'Release'. Clique sur le nom de ton projet (donc ni sur 'Debug ou 'Release' ) puis sur l'onglet 'Search directories' et verifie bien que tu as les mêmes chemins de répertoires que tous nous mentionnés dans ton tout premier post.
En effet si tu compile en debug et que tu as renseigné les chemins de répertoire seulement pour Release , ça ne marchera pas.
Franchement, là, je comprends pas pourquoi ça ne veut pas marcher.
Est-ce que les chemins (linker compil, etc..) sont du type relatif ? Parce que si tu as bougé le dossier de ton projet dans un autre répertoire, ça pourrait expliqué ton souci...(mais d'un autre côté SDL et SDL_image marchent bien, donc non en principe...)
Moi pareil, mais ça, c'était évident =p... Après y a un truc qui me chiffonne dans l’installation, la première archive a télécharger contient les dll a mettre dans le projet, mais le deuxième aussi a des dll et les même je crois...
Il y a l'archive pour les developpeurs : DLLs + Headers + fichiers 'Lib' pour pouvoir créer des porgrammes utilisant sdl_ttf et l'archive avec seulement les DLLs pour pouvoir utiliser les programmes fonctionnant avec sdl_ttf. En fait les DLLs sont des fichiers contenant les fonctions de la bibliothèque (elles ne sont pas incluses dans ton programme) en format binaire.
Tu utilise bien windows avec codeblocks ? Tu n'est pas sous Linux ?
Est-ce que tu peux nous montrer ton code ? (ou bien le build log)
Comment as-tu procédé pour créer ton projet sous codeblocks , as-tu utilisé le template de code blocks (vu que tu utilise sdl 1.2 -- avec la 2.0 c'est différent) ?
Je ne comprends toujours pas pourquoi ça ne veut pas fonctionner...
Je pense qu' il faudrait déjà résoudre la ligne suivante : (.text.startup+0xa7): undefined reference to `WinMain@16'
Est-ce que tu as mis les #ifndef #define et #endif dans tes fichiers headers pour éviter l'inclusion répétée (là je tente un peu au hasard...).
Sinon, est-ce que tu pourrais me montrer le code de jeu.c
-Edit-
Une fois j'avais eu un prpblème parce que mon fichier "macro_constantes.h" était mal composé (il manquait une accolade, un point virgule ou je ne sais trop quoi..) et j'avais des erreurs de compilateur qui n'étaient pas très explicite.
Honnêtement, je pense que c'est la configuration de ton template qui fait foirer la compilation (parce que ton code il est correct et comme tu décrit ta démarche pour l'installation des bibliothèque là aussi c'est bon).
Il vient d' où ton template (celui intégré à codeblocks ou d'un autre site ) ?
Celui intégré, il a marché pour tout sauf pour SDL_ttf c'est bizarre... Mais vu que mon CB me fait d'autres bizarreries en ce moment, je pense tout désinstaller et réinstaller depuis le début. Mais j'ai peur de perdre mes projets et tout ca
Ok j'ai tout réinstallé et maintenant ni SDL ni SDL_image ni SDL_ttf ne fonctionnent... J'ai pourtant tout relinké et suivi les instruction de m@teo à la lettre.
J'ai aussi changé dans settings -> Global variable les path pour la sdl
J'ai refait un projet SDL où j'ai pu ré-indiquer la nouvelle direction de ma SDL, et j'ai importer tous mes fichiers. Maintenant SDL remarche mais TTF et image ne marchent toujours pas. 'undefined reference'
Récapitulons (sauf la SDL à proprement parler qui marche bien).
SDL_image.h dans le répertoire ('chemin renseigné dans l'onglet compiler'/SDL/SDL_image.h) si tu fais #include <SDL/SDL.image.h>
sinon 'chemin renseigné dans l'onglet compiler'/SDL_image.h avec #include <SDL_image.h>
SDL_ttf.h : idem
Les dlls dans le répertoire de l'éxecutable (vérifier que 'working dir' dans 'Project >> Properties >>onglet 'build target' >> 'execution working dir' est le chemin ou se trouve les fichiers graphiques et les DLLs du projet.
Personnellement j'utilise la sdl 2.0. ----Il reste des fichiers à renseigner (pour la sdl 1.2) dans Project>> build options>>linker settings >> Link libraries que le template de code blocks pour sdl 1.2 rempli automatiquement
le working dir est bien le fichier du projet où j'ai déjà mis toutes les DLLs.
Dans search directories compiler j'ai bien le bon chemin finissant par SDL-1.2.15/include et pareil pour l'onglet linker: SDL-1.2.15/lib.
Et dans les options du linker j'ai rajouté SDL_image.lib et SDL_ttf.lib. Donc tous ce que tu as dis c'est bon =/
Aussi j'ai installé fmod, et ça s'est passé très bien. Peut-être parce que l'installation se fait directement dans MinGW ou parce que la lib est en .a et non .lib je sais pas...
PS: j'ai tout réinstallé dont codeblocks fmod sdl_image et sdl_ttf et rebelote: erreur undefined reference sur IMG_Load (sdl_image) et TTF_Init (sdl_ttf)
Salut, j'avais eu le meme problème que toi, donc je t'explique comme moi j'ai fait: j'ai créé un dossier "SDL" dans le dossier" codeblocks", mon dossier "SDL" comporte trois sous-dossiers que j'ai crées nommés "lib", "include" et "bin".
Dans "lib" il y a tous les "libMachin.a" et "SDL_Machin.lib", dans "include" bah tous les "SDL_Machin.h" (en faite j'ai deux sous-dossiers les include pour sdl et ceux pour fmod) et dans le "bin" j'ai tous les fichiers "machin.dll". voilà pour tout le principal (et tu peux y mettre tous les TTF, SDL_image, et même fmod du moment que tous les différents types de fichiers (.a/.lib, .h, et .dll) sont répartis dans les sous-dossiers comme je l'ai décrit plus tôt.)
Le plus important c'est quand tu vas dans settings->compiler moi je n'utilise pas de template j'ai carrément modifier l'option générale car j'utilise que la sdl ainsi tu peux créer un projet vide ça démarrera quand même la sdl bien comme il faut avec ttf, image et fmod etc..
donc dans le menu compiler tu vas dans "search directories", dans l'onglet "compiler" tu clique sur add et tu parcoures pour lier le dossier "include" contenu dans le dossier "SDL" lui même placé dans code:blocks du coup ça doit te donner une fois que tu as ajouté le dossier : C:\Program Files...\CodeBlocks\SDL\include, il faut que le chemin soit complet.
puis tu vas dans l'onglet "linker" juste à droite et là tu lies le dossier "lib" de la même manière que précédemment.
Enfin et c'est le plus important tu vas dans "linker setting" et il faut que ça ressemble à ça :
Pour être sur de toi si ça ressemble pas à la capture supprime tous les liens que tu as et fais comme ça: ajoute les fichiers .lib utiles, donc pour toi j'imagine que tu vas lier le SDL_ttf.lib qui se trouve comme la photo l'indique dans mon dossier "lib" puis tu ajoutes "mingw32", tu écris juste mingw32 et tu fais ok, puis tu ajoute "SDLmain" en écrivant simplement SDLmain et enfin tu ajoutes "SDL.dll" comme tu peux le voir ces trois derniers fichiers n'ont pas de chemin tu écris juste leur noms c'est important, et tu dois RESPECTER L'ORDRE c'est extrèmement important, ça doit ressembler à ma capture d'écran ok?
Voilà normalement ça fonctionnera tranquille. L'include tu l'écris #include<SDL/SDL_machin.h> si dans le dossier "include" comme moi tu as mis un sous-dossier "SDL" et un sous-dossier "fmodex".
et quand tu télécharge ttf ça ne se voit pas mais sur le site il y a un petit lien SDL_ttf for 1.2 clique dessus car même si tous les fichiers téléchargeables sont toujours en 2.0 et que t'as l'impression que c'est la même chose en faite leurs contenus ont changé et ça c'est le bon ttf.
Voilà mais j'insiste sur l'ordre des liens d'abord le chemin complet qui mene vers ttf.lib puis mingw32 puis SDLmain puis SDL.dll car sinon tu auras l'erreur du "Winmain" et bien sur n'oublies pas d'inclure les dll dans ton dossier de ton programme.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr