Vous l'avez (S)urement (D)éja (L)u
Par Jean-Seb le vendredi 17 août 2007, 19:27 - Coding - Lien permanent
La S.D.L c'est bien, mais il faut connaître quelques trucs pour s'en sortir.
La SDL, ce que j'en pense.
Sous Linux, SDL est en général bien packagé (attention aux versions foireuses, la 1.2.11 ne pose plus de problèmes).
Cette lib cède du terrain face aux initiatives comme OIS pour le controle des périphériques ou encore OpenAL pour l'audio. Il est toutefois bon de la connaitre un minimum, ne serait-ce que pour les projets déja en place.
Elle possède également l'interet d'avoir beaucoup de bibliothèques associées.
Et encore une fois, quelque chose de codé en C ne peut pas être entièrement mauvais. Non ?
Arriver au bout de sa compilation
Sous windows, il est impératif de déclarer la fonction main de
cette manière:
int main(int argc, char **argv)
Dans le cas contraire, le code ne pourra pas être lié à SDLmain et la compilation s'arrêtera avec le plus cryptique des messages d'erreur.
Utiliser sdl-config (une variante dédiée SDL inspirée de pkg-config, déja présenté dans ce blog).
On peut également utiliser pkg-config si disponible (je crois que c'est intégré pour de bon, maintenant).
Après une installation, toujours compiler quelques exemples pour vérifier que rien ne cloche, avant de commencer à compiler votre propre code.
Exemple de compilation avec Mingw
gcc test.c -o testalpha -I/mingw/include/SDL -lmingw32 -lSDLMain -lSDL
Attention, si vous utilisez sdl-config / pkg-config (méthode conseillée), car le script ajoute par défaut le flag -mwindows
le flag -mwindows signale que l'on ne veut pas qu'une fenêtre Dos surgisse à l'exécution du programme.
Une astuce pour MSVC
Pour enlever l'énervante boite dos qui poppe au lancement d'un programme SDL (normal, on ne compile pas avec la CRT de Windows, quand on a un int main(...) comme point d'entrée)
cl youpi.c sdl.lib sdlmain.x.y.z.lib /MD /link /entry:WinMainCRTStartup /subsystem:windows