#1 Le 11/08/2015, à 12:59
- MasterYo
[Résolu] 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!!
PS : 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, à 16:26)
Hors ligne
#2 Le 11/08/2015, à 13:09
- tiramiseb
Re : [Résolu] Problème SDL, code::blocks
Salut,
Ne télécharge pas les bibliothèques comme ça, malheureux !
Utilise :
sudo apt-get install libsdl-dev
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 11/08/2015, à 13:15
- grigouille
Re : [Résolu] Problème SDL, code::blocks
g++ -o test test.C `sdl-config --cflags --libs`
C'est expliqué dans la documentation sdl
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#4 Le 11/08/2015, à 13:54
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Salut,
Ne télécharge pas les bibliothèques comme ça, malheureux !
Utilise :
sudo apt-get install libsdl-dev
Petit problème, lorsque je tente d'installer libsdl2-dev, il me dit qu'il a besoin de dépendances, mais elles sont toutes installées, ou alors je comprends plus rien
le retour de apt-get install libsdl2-dev :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites :
libcheese-gtk23 : Dépend: libclutter-gtk-1.0-0 (>= 0.91.8) mais ne sera pas installé
Dépend: libcogl15 (>= 1.15.8) mais ne sera pas installé
libcheese7 : Dépend: libclutter-gst-2.0-0 (>= 0.10.0) mais ne sera pas installé
Dépend: gstreamer1.0-clutter mais ne sera pas installé
libclutter-1.0-0 : Dépend: libcogl-pango15 (>= 1.15.8) mais ne sera pas installé
Dépend: libcogl15 (>= 1.15.8) mais ne sera pas installé
libsdl2-dev : Dépend: libegl1-mesa-dev
Dépend: libgles2-mesa-dev
E: Erreur, pkgProblem::Resolve a généré des ruptures, ce qui a pu être causé par les paquets devant être gardés en l'état.
g++ -o test test.C `sdl-config --cflags --libs`
C'est expliqué dans la documentation sdl
problème :
gcc -o test main.cpp `sdl-config --cflags --libs`
Le programme « sdl-config » n'est pas encore installé. Vous pouvez l'installer en tapant :
sudo apt-get install libsdl1.2-dev
main.cpp:7:21: fatal error: SDL/SDL.h: Aucun fichier ou dossier de ce type
#include <SDL/SDL.h>
^
compilation terminated.
En tout cas, merci de vos réponses rapides !!
PS : Pourquoi Code::blocks a automatiquement généré un projet en c++ (extension.cpp)?
Dernière modification par MasterYo (Le 11/08/2015, à 14:04)
Hors ligne
#5 Le 11/08/2015, à 14:04
- grigouille
Re : [Résolu] Problème SDL, code::blocks
Installe la 1.2
sudo apt-get install libsdl1.2-dev
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#6 Le 11/08/2015, à 14:07
- grigouille
Re : [Résolu] Problème SDL, code::blocks
PS : Pourquoi Code::blocks a automatiquement généré un projet en c++ (extension.cpp)?
Laisse tomber code_blocks et utilise ton éditeur de texte préféré. Compile ensuite en ligne de commande.
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#7 Le 11/08/2015, à 14:14
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Installe la 1.2
sudo apt-get install libsdl1.2-dev
oui mais non, premièrement car j'ai les mêmes erreurs :
apt-get install libsdl1.2-dev
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites :
unity-control-center : Dépend: libcheese-gtk23 (>= 3.4.0) mais ne sera pas installé
Dépend: libcheese7 (>= 3.0.1) mais ne sera pas installé
E: Erreur, pkgProblem::Resolve a généré des ruptures, ce qui a pu être causé par les paquets devant être gardés en l'état.
et puis pourquoi ne pas profiter des MAJs ???
MasterYo a écrit :PS : Pourquoi Code::blocks a automatiquement généré un projet en c++ (extension.cpp)?
Laisse tomber codeblocks et utilise ton éditeur de texte préféré. Compile ensuite en ligne de commande.
euh... Pourquoi??
Hors ligne
#8 Le 11/08/2015, à 14:24
- grigouille
Re : [Résolu] Problème SDL, code::blocks
Je ne sais pas pourquoi le paquet ne s'installe pas chez toi. Aucun problème de mon côté pour compiler ton programme avec la sdl1.2
Désolé, je ne connais pas la sdl2.
Tu peux continuer à utiliser code_blocks si tu veux mais je trouve cela bien lourd.
Il est bien plus simple de créer soi-même son fichier (avec l'extension que l'on veut) et de compiler à la main. Après, chacun est libre.
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#9 Le 11/08/2015, à 14:26
- grigouille
Re : [Résolu] Problème SDL, code::blocks
Peut-être que
sudo apt-get update && sudo apt-get upgrade
réglera ton problème.
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#10 Le 11/08/2015, à 14:39
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Peut-être que
sudo apt-get update && sudo apt-get upgrade
réglera ton problème.
Malheureusement non.. Je suis un peu dégoutté, je me languissait tellement de développer de vrais programmes avec des fenêtres etc etc...
Hors ligne
#11 Le 11/08/2015, à 14:43
- grigouille
Re : [Résolu] Problème SDL, code::blocks
Donne quand même le retour de cette commande. J'espère que quelqu'un va te sortir de là.
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#12 Le 11/08/2015, à 14:55
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Donne quand même le retour de cette commande.
Le retour de update :
Ign http://ftp.oleane.net trusty InRelease
Ign http://ppa.launchpad.net trusty InRelease
Ign http://extras.ubuntu.com trusty InRelease
Ign http://dl.google.com stable InRelease
Ign http://ftp.oleane.net trusty-updates InRelease
Atteint http://ppa.launchpad.net trusty Release.gpg
Atteint http://extras.ubuntu.com trusty Release.gpg
Atteint http://dl.google.com stable Release.gpg
Ign http://ftp.oleane.net trusty-backports InRelease
Atteint http://ppa.launchpad.net trusty Release
Atteint http://extras.ubuntu.com trusty Release
Atteint http://dl.google.com stable Release
Ign http://ftp.oleane.net trusty-security InRelease
Atteint http://ppa.launchpad.net trusty/main amd64 Packages
Atteint http://extras.ubuntu.com trusty/main Sources
Atteint http://dl.google.com stable/main amd64 Packages
Atteint http://ftp.oleane.net trusty Release.gpg
Atteint http://ppa.launchpad.net trusty/main i386 Packages
Atteint http://extras.ubuntu.com trusty/main amd64 Packages
Atteint http://dl.google.com stable/main i386 Packages
Atteint http://ftp.oleane.net trusty-updates Release.gpg
Atteint http://ppa.launchpad.net trusty/main Translation-en
Atteint http://extras.ubuntu.com trusty/main i386 Packages
Atteint http://ftp.oleane.net trusty-backports Release.gpg
Atteint http://ftp.oleane.net trusty-security Release.gpg
Atteint http://ftp.oleane.net trusty Release
Atteint http://ftp.oleane.net trusty-updates Release
Atteint http://ftp.oleane.net trusty-backports Release
Atteint http://ftp.oleane.net trusty-security Release
Atteint http://ftp.oleane.net trusty/main Sources
Atteint http://ftp.oleane.net trusty/restricted Sources
Atteint http://ftp.oleane.net trusty/universe Sources
Atteint http://ftp.oleane.net trusty/multiverse Sources
Atteint http://ftp.oleane.net trusty/main amd64 Packages
Atteint http://ftp.oleane.net trusty/restricted amd64 Packages
Atteint http://ftp.oleane.net trusty/universe amd64 Packages
Ign http://extras.ubuntu.com trusty/main Translation-fr_FR
Ign http://dl.google.com stable/main Translation-fr_FR
Atteint http://ftp.oleane.net trusty/multiverse amd64 Packages
Ign http://extras.ubuntu.com trusty/main Translation-fr
Ign http://dl.google.com stable/main Translation-fr
Ign http://extras.ubuntu.com trusty/main Translation-en
Ign http://dl.google.com stable/main Translation-en
Atteint http://ftp.oleane.net trusty/main i386 Packages
Atteint http://ftp.oleane.net trusty/restricted i386 Packages
Atteint http://ftp.oleane.net trusty/universe i386 Packages
Atteint http://ftp.oleane.net trusty/multiverse i386 Packages
Atteint http://ftp.oleane.net trusty/main Translation-fr
Atteint http://ftp.oleane.net trusty/main Translation-en
Atteint http://ftp.oleane.net trusty/multiverse Translation-fr
Atteint http://ftp.oleane.net trusty/multiverse Translation-en
Atteint http://ftp.oleane.net trusty/restricted Translation-fr
Atteint http://ftp.oleane.net trusty/restricted Translation-en
Atteint http://ftp.oleane.net trusty/universe Translation-fr
Atteint http://ftp.oleane.net trusty/universe Translation-en
Atteint http://ftp.oleane.net trusty-updates/main Sources
Atteint http://ftp.oleane.net trusty-updates/restricted Sources
Atteint http://ftp.oleane.net trusty-updates/universe Sources
Atteint http://ftp.oleane.net trusty-updates/multiverse Sources
Atteint http://ftp.oleane.net trusty-updates/main amd64 Packages
Atteint http://ftp.oleane.net trusty-updates/restricted amd64 Packages
Atteint http://ftp.oleane.net trusty-updates/universe amd64 Packages
Atteint http://ftp.oleane.net trusty-updates/multiverse amd64 Packages
Atteint http://ftp.oleane.net trusty-updates/main i386 Packages
Atteint http://ftp.oleane.net trusty-updates/restricted i386 Packages
Atteint http://ftp.oleane.net trusty-updates/universe i386 Packages
Atteint http://ftp.oleane.net trusty-updates/multiverse i386 Packages
Atteint http://ftp.oleane.net trusty-updates/main Translation-en
Atteint http://ftp.oleane.net trusty-updates/multiverse Translation-en
Atteint http://ftp.oleane.net trusty-updates/restricted Translation-en
Atteint http://ftp.oleane.net trusty-updates/universe Translation-en
Atteint http://ftp.oleane.net trusty-backports/main Sources
Atteint http://ftp.oleane.net trusty-backports/restricted Sources
Atteint http://ftp.oleane.net trusty-backports/universe Sources
Atteint http://ftp.oleane.net trusty-backports/multiverse Sources
Atteint http://ftp.oleane.net trusty-backports/main amd64 Packages
Atteint http://ftp.oleane.net trusty-backports/restricted amd64 Packages
Atteint http://ftp.oleane.net trusty-backports/universe amd64 Packages
Atteint http://ftp.oleane.net trusty-backports/multiverse amd64 Packages
Atteint http://ftp.oleane.net trusty-backports/main i386 Packages
Atteint http://ftp.oleane.net trusty-backports/restricted i386 Packages
Atteint http://ftp.oleane.net trusty-backports/universe i386 Packages
Atteint http://ftp.oleane.net trusty-backports/multiverse i386 Packages
Atteint http://ftp.oleane.net trusty-backports/main Translation-en
Atteint http://ftp.oleane.net trusty-backports/multiverse Translation-en
Atteint http://ftp.oleane.net trusty-backports/restricted Translation-en
Atteint http://ftp.oleane.net trusty-backports/universe Translation-en
Atteint http://ftp.oleane.net trusty-security/main Sources
Atteint http://ftp.oleane.net trusty-security/restricted Sources
Atteint http://ftp.oleane.net trusty-security/universe Sources
Atteint http://ftp.oleane.net trusty-security/multiverse Sources
Atteint http://ftp.oleane.net trusty-security/main amd64 Packages
Atteint http://ftp.oleane.net trusty-security/restricted amd64 Packages
Atteint http://ftp.oleane.net trusty-security/universe amd64 Packages
Atteint http://ftp.oleane.net trusty-security/multiverse amd64 Packages
Atteint http://ftp.oleane.net trusty-security/main i386 Packages
Atteint http://ftp.oleane.net trusty-security/restricted i386 Packages
Atteint http://ftp.oleane.net trusty-security/universe i386 Packages
Atteint http://ftp.oleane.net trusty-security/multiverse i386 Packages
Atteint http://ftp.oleane.net trusty-security/main Translation-en
Atteint http://ftp.oleane.net trusty-security/multiverse Translation-en
Atteint http://ftp.oleane.net trusty-security/restricted Translation-en
Atteint http://ftp.oleane.net trusty-security/universe Translation-en
Ign http://ftp.oleane.net trusty/main Translation-fr_FR
Ign http://ftp.oleane.net trusty/multiverse Translation-fr_FR
Ign http://ftp.oleane.net trusty/restricted Translation-fr_FR
Ign http://ftp.oleane.net trusty/universe Translation-fr_FR
Lecture des listes de paquets... Fait
le retour de upgrade :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été conservés :
libgbm1
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour.
le retour de apt-get install libgbm1 :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites :
libgbm1 : Dépend: libgl1-mesa-dri (= 10.6.3+git20150809+10.6.736f6e16-0ubuntu0ricotz~trusty)
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
J'espère que quelqu'un va te sortir de là.
Oui Moi aussi
Dernière modification par MasterYo (Le 11/08/2015, à 15:28)
Hors ligne
#13 Le 11/08/2015, à 15:36
- grim7reaper
Re : [Résolu] Problème SDL, code::blocks
Salut,
grigouille a écrit :Installe la 1.2
sudo apt-get install libsdl1.2-dev
[…]
et puis pourquoi ne pas profiter des MAJs ???
La SDL 2.X n’est pas retro-compatible avec la SDL 1.X comme l’indique le changement de version majeure. Donc si tu suis un tutoriel pour la SDL 1.2 et que tu veux utiliser la SDL 2 ça ne va pas fonctionner sans modifications.
Sinon pour ton problème d’installation, je te conseille d’ouvrir un sujet dans la section « Installation de logiciels et changements de version » si ce n’est pas déjà fait, tu y trouveras sûrement plus d’aide
Une fois que la SDL sera correctement installée, tu pourras revenir sur ce sujet et on pourra t’aider pour les questions de programmation
Dernière modification par grim7reaper (Le 11/08/2015, à 15:39)
Hors ligne
#14 Le 11/08/2015, à 15:47
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Salut,
MasterYo a écrit :grigouille a écrit :Installe la 1.2
sudo apt-get install libsdl1.2-dev
[…]
et puis pourquoi ne pas profiter des MAJs ???La SDL 2.X n’est pas retro-compatible avec la SDL 1.X comme l’indique le changement de version majeure. Donc si tu suis un tutoriel pour la SDL 1.2 et que tu veux utiliser la SDL 2 ça ne va pas fonctionner sans modifications.
Sinon pour ton problème d’installation, je te conseille d’ouvrir un sujet dans la section « Installation de logiciels et changements de version » si ce n’est pas déjà fait, tu y trouveras sûrement plus d’aide
Une fois que la SDL sera correctement installée, tu pourras revenir sur ce sujet et on pourra t’aider pour les questions de programmation
Ok merci Je vais faire ca tout de suite
EDIT : Bon ben plus qu'a attendre https://forum.ubuntu-fr.org/viewtopic.p … #p20361001
Dernière modification par MasterYo (Le 11/08/2015, à 15:55)
Hors ligne
#15 Le 11/08/2015, à 16:24
- MasterYo
Re : [Résolu] Problème SDL, code::blocks
Bon ben Résolu !! J'ai installé manuellement la 1.2... Merci a tous!!
Hors ligne