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.
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
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