#1 Le 11/08/2015, à 16:50
- MasterYo
[OBSOLETE]Problème SDL, code::blocks
Bonjour à tous
Alors voilà, je suis un "turoriel" de programmation en c (celui écrit par M. Nebra ), et j'en suis au chapitre ou il utilise SDL.
Du coup, je veux l'installer. J'ai donc téléchargé l'archive de la bibliothèque pour le développement de SDL en 2.0.3 (SDL2-devel-2.0.3-mingw.tar.gz) . Je l'ai décompréssée dans un dossier et j'ai voulu créer un projet dans code::blocks. Premier problème, lorsque je crée mon projet SDL, il ne me demande pas ou se situe mon dossier "SDL". Comme c'est un tuto assez ancien (il n'y avait que la 1.2 de SDL), je me dis "Cool!! c'est devenu automatique!".
Code::blocks génere donc le code de base et tout, sauf qu'en fait non, c'est pas automatique. Du coup le deuxième problème fait sa majestueuse arrivée : "fatal error : SDL/SDL.h: Aucun fichier ou dossier de ce type", avec la ligne
#include <SDL/SDL.h>
Pointée en rouge. --' Bref.
Je cherche partout, google me dit de modifier des trucs dans le linker, ca marche pas, etc etc... Aucun forum ne me donne la solution au problème.
Du coup ben je viens ici Vu que je sais que vous êtes les meilleurs
Merci d'avance!!
PS1 : On m'a dit chez les programmeurs d'ouvrir une discussion ici (sujet original : https://forum.ubuntu-fr.org/viewtopic.p … p20360961)
PS2 : si vous voulez le code généré automatiquement complet, il est là :
#ifdef __cplusplus
#include <cstdlib>
#else
#include <stdlib.h>
#endif
#include <SDL/SDL.h>
int main ( int argc, char** argv )
{
// initialize SDL video
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
printf( "Unable to init SDL: %s\n", SDL_GetError() );
return 1;
}
// make sure SDL cleans up before exit
atexit(SDL_Quit);
// create a new window
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16,
SDL_HWSURFACE|SDL_DOUBLEBUF);
if ( !screen )
{
printf("Unable to set 640x480 video: %s\n", SDL_GetError());
return 1;
}
// load an image
SDL_Surface* bmp = SDL_LoadBMP("cb.bmp");
if (!bmp)
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 1;
}
// centre the bitmap on screen
SDL_Rect dstrect;
dstrect.x = (screen->w - bmp->w) / 2;
dstrect.y = (screen->h - bmp->h) / 2;
// program main loop
bool done = false;
while (!done)
{
// message processing loop
SDL_Event event;
while (SDL_PollEvent(&event))
{
// check for messages
switch (event.type)
{
// exit if the window is closed
case SDL_QUIT:
done = true;
break;
// check for keypresses
case SDL_KEYDOWN:
{
// exit if ESCAPE is pressed
if (event.key.keysym.sym == SDLK_ESCAPE)
done = true;
break;
}
} // end switch
} // end of message processing
// DRAWING STARTS HERE
// clear screen
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
// draw bitmap
SDL_BlitSurface(bmp, 0, screen, &dstrect);
// DRAWING ENDS HERE
// finally, update the screen :)
SDL_Flip(screen);
} // end main loop
// free loaded bitmap
SDL_FreeSurface(bmp);
// all is well ;)
printf("Exited cleanly\n");
return 0;
}
Dernière modification par MasterYo (Le 11/08/2015, à 17:25)
Hors ligne