Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/08/2015, à 13:59

MasterYo

[Résolu] Problème SDL, code::blocks

Bonjour à tous smile

Alors voilà, je suis un "turoriel" de programmation en c (celui écrit par M. Nebra wink ), 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 smile Vu que je sais que vous êtes les meilleurs wink 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, à 17:26)

Hors ligne

#2 Le 11/08/2015, à 14: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

Hors ligne

#3 Le 11/08/2015, à 14: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, à 14:54

MasterYo

Re : [Résolu] Problème SDL, code::blocks

tiramiseb a écrit :

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 hmm

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.
grigouille a écrit :
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 wink !!

PS : Pourquoi Code::blocks a automatiquement généré un projet en c++ (extension.cpp)?

Dernière modification par MasterYo (Le 11/08/2015, à 15:04)

Hors ligne

#5 Le 11/08/2015, à 15: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, à 15:07

grigouille

Re : [Résolu] Problème SDL, code::blocks

MasterYo a écrit :

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, à 15:14

MasterYo

Re : [Résolu] Problème SDL, code::blocks

grigouille a écrit :

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 ???

grigouille a écrit :
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, à 15: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, à 15: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, à 15:39

MasterYo

Re : [Résolu] Problème SDL, code::blocks

grigouille a écrit :

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, à 15: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, à 15:55

MasterYo

Re : [Résolu] Problème SDL, code::blocks

grigouille a écrit :

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 ».
grigouille a écrit :

J'espère que quelqu'un va te sortir de là.

Oui smile Moi aussi hmm

Dernière modification par MasterYo (Le 11/08/2015, à 16:28)

Hors ligne

#13 Le 11/08/2015, à 16:36

grim7reaper

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 wink
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 smile

Dernière modification par grim7reaper (Le 11/08/2015, à 16:39)

Hors ligne

#14 Le 11/08/2015, à 16:47

MasterYo

Re : [Résolu] Problème SDL, code::blocks

grim7reaper a écrit :

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 wink
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 smile

Ok merci smile Je vais faire ca tout de suite smile

EDIT : Bon ben plus qu'a attendre smile https://forum.ubuntu-fr.org/viewtopic.p … #p20361001

Dernière modification par MasterYo (Le 11/08/2015, à 16:55)

Hors ligne

#15 Le 11/08/2015, à 17: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