Bonjour à tous,
J'ai décidé dernièrement de m'intéresser à la programmation de jeux. J'ai donc installé SDL et Code::Blocks pour le coder en C. J'en arrive au code suivant :
Pas grand chose donc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <stdlib.h> #include <stdio.h> #include "SDL.h" int main(int argc, char *argv[]) { //DEMARRAGE SDL // Chargement de la video et de l'audio if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1) //Si erreur : { fprintf(stderr, "Erreur d'initialisation de la SDL : %s\n", SDL_GetError()); // ecriture de l'erreur exit(EXIT_FAILURE); // On quitte le programme. EXIT_FAILURE/SUCCESS : compatibilite avec tous les OS } //SDL CHARGEE //PROGRAMME SDL_SetVideoMode(640, 480, 32); //ARRET SDL (liberation de la memoire). SDL_Quit(); return EXIT_SUCCESS; }
Pour information, mon dossier SDL est ici : C:\Users\<monNom>\SDL. Il contient plusieurs sous-dossiers, j'ai choisi le dossier \i686-w64-mingw32 qui contient les bin, include et lib de SDL.
Dans Code::Blocks, j'ai configuré settings de manière à ce que l'édition des liens et la compilation fonctionne, cad :
- Settings > Compiler > Linker Settings > Other linker options : -lmingw32
- Settings > Compiler > Search Directories > Compiler : C:\Users\<monNom>\SDL\i686-w64-mingw32\include\SDL2 (contient les .h)
- Settings > Compiler > Search Directories > Linker : C:\Users\<monNom>\SDL\i686-w64-mingw32\lib (ici les .a)
A priori, on a tout, non ? Pourtant, quand je compile, pour les quatre fonctions de SDL que j'utilise, je reçois l'erreur : undefined reference to 'SDL_XXX'
Je ne comprends pas, auparavant j'avais un problème avec l'include, que j'ai résolu. Maintenant, l'include marche à priori, mais la référence vers les fonctions de la bibliothèque est indéfinie ! Pourtant (par exemple) il y a bien un prototype extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); dans SDL.h...
Je suis assez dépassé par le mystère, j'ai l'impression qu'il manque quelque chose de toute simple mais je ne sais pas quoi.
Des idées ?
NB : pour info mon dossier SDL vient de SDL2-devel-2.0.3-mingw.tar.gz sur http://www.libsdl.org/download-2.0.php
Partager