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 :
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;
}
Pas grand chose donc.

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