Installer SDL avec Eclipse et MinGW

Publié dans C / C++ | Marqué avec , , , ,
Share

Je viens de passer tout un soirée avec des zamis à essayer d’installer SDL sous Eclipse avec MinGW, et ma foi, on aura tout essayé et on aura galéré bien comme il faut. Et on n’aura rien fait d’autres… Erreur débile, comme d’hab.

Téléchargement de SDL

Tout d’abord, il faut télécharger SDL : Site de la libsdl.

Télécharger SDL

Installer SDL

Ensuite comme pour toute librairie :

  • les fichiers de /include vont dans MinGW/include (il faut donc créer un dossier SDL dans MinGW/include)
  • les fichiers de /lib vont dans MinGW/lib
  • les fichiers de /bin vont dans windows/system32 (même pour les ordis 64bits)

Linker Eclipse avec la librairie SDL

Il faut ensuite préciser à Eclipse qu’il doit compiler en utilisant la librairie SDL. Pour cela, aller dans Project > Properties > C/C\++ Builder > Settings > MinGW C\++ Linker > Librairies et ajouter dans Librairies (-l), les librairies suivantes DANS l’ORDRE :

  • mingw32
  • SDLmain
  • SDL

Linker Eclipse à SDL

Notre erreur était justement que l’on n’avait pas mis ces librairies dans l’ordre. Nous en utilisons plusieurs autres (OpenGL, Glut, …) parce conséquent, tout ça c’est un peu mélangé et c’est comme ça qu’on passe 3h à débuguer un programme qui marche ! On a passé notre soirée sur de magnifiques erreurs comme :

référence indéfinie vers "SDL_getenv" référence indéfinie vers "SDL_GetError" référence indéfinie vers "SDL_Init" référence indéfinie vers "SDL_Quit" référence indéfinie vers "SDL_SetModuleHandle" référence indéfinie vers "SDL_ctrlcat" référence indéfinie vers "SDL_ctrlcpy"

Rapide exemple d’utilisation de SDL

Dans le main.cpp :

#include "SDL/SDL.h" int main( int argc, char ** args ) {
	//Demarrer SDL
	SDL_Init( SDL_INIT_EVERYTHING );
	//Quitter SDL
	SDL_Quit();
	return 0; }

Et en théorie, pour que ça marche, dans Project > Properties > C/C\++ Builder > Settings > GCC C\++ Compiler > Preprocessor, il faut ajouter dans Defined Properties (-D) : main=SDL_main
Mais chez moi, ça fonctionne sans.

Si ça ne marche pas, on obtient la belle erreur suivante :

Undefined reference to "WinMain@16"

Pour conclure

On peut vraiment perdre du temps pour des débilités. Cela dit, notre niveau en Eclipse a « increase » un max, de même pour nos connaissances théoriques en libraires SDL, Glut, et compagnie !

8 réponses à Installer SDL avec Eclipse et MinGW

  1. Aah les joies de la SDL. J’en ai bouffé aussi, sous windows. Et pareil, j’ai perdu un temps fou sur des petites conneries.
    J’ai découvert http://love2d.org/ , un genre de SDL mais que tu utilises avec un langage autre que le C (du ADA je pense) et qui reste assez simple ) utiliser.

  2. BN

    Merci de l’info ^^

  3. kiseiju

    Bonjour,

    Comment fait-on pour installer la SDL_Image sous eclipse

    J’ai essayer d’imiter la procédure pour la SDL

  4. BN

    De mémoire, il suffit de l’ajouter dans Librairies comme SDL. ça ne marche pas ?

  5. Mictian

    Merci !!!

  6. JB

    Haha ! de vieux souvenirs

  7. ilisparrow

    S’il vous plait je n’arrive pas a installer la SDL sous eclipse, et je ne supporte plus code block( meme si il reste bon) SI qlq pouvait m’aider, je lui transmeterai mon id skype.
    Bonne journée.

  8. Lerami

    Coucou!
    Merci pour ces explications détaillées

    J’ai un petit soucis : même en ajoutant la propriétés main = SDL_main, j’ai toujours l’erreur
    Undefined reference to « WinMain@16 »

    une idée pour régler le problème ? (j’ai ajouté dans les options de compilation -lSDL -lSDLmain sans succès)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*