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 Responses to Installer SDL avec Eclipse et MinGW

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *