Partage
  • Partager sur Facebook
  • Partager sur Twitter

installer la sdl SDL

Sujet résolu
    28 avril 2022 à 0:51:17

    Bonjour j'aimerai attaquer l'apprentissage de le programmation 2D avec la SDL en langage C

    J'ai téléchargé  :                           SDL-devel-1.2.15-mingw32.tar.gz

    je l'ai dézippé ce qui me donne  :   SDL-devel-1.2.15-mingw32.tar

    je l'ai dézipper ce qui me donne:  SDL-devel-1.2.15-mingw32

    dedans jais:                                 SDL-1.2.15 

    que j'ai copier dans le dossier de code a coté du dossier MinGW.

    Jai aussi téléchargée                   SDL-1.2.15-win32.zip

    que j'ais dézippé                        SDL-1.2.15-win32

    dedans j'ai                                SDL.dll

    que j'ai placé dans le dossier de mon projet a coté de mon projet.cbp

    j'ai aussi comme précisé dans le tuto copier les fichier(.h) de C:\Program Files\CodeBlocks\SDL-1.2.15\include\SDL

    dans le répertoire racine                                                     C:\Program Files\CodeBlocks\SDL-1.2.15\include

    j'ai bien indiqué a code block le chemin  BASE:                       C:\Program Files\CodeBlocks\SDL-1.2.15

    Mon code et celui automatiquement generé par code block:

    #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;
    }
    

    et quand je compile j'ai les erreur suivantes:

    ||=== Build: Release in test3SDL (compiler: GNU GCC Compiler) ===|

    ld.exe||cannot find -lSDLmain|

    ld.exe||cannot find -lSDL.dll|

    ||error: ld returned 1 exit status|

    ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

    Jai chercher un peut partout, j'ai compris que c'était un problème de linker mais je n'arrive pas a le résoudre si quelqu'un peut m'aider ça serai cool j'aimerai bien sortir de la console.
    Merci a tousse pour le temp que vous m'accorderez .
    • Partager sur Facebook
    • Partager sur Twitter
      28 avril 2022 à 8:50:22

      Suis un cours à jour, celui du site est périmé, code::blocks aussi et SDL 1.2 sent le formol (en plus de ne plus être supporté).
      • Partager sur Facebook
      • Partager sur Twitter

      git is great because Linus did it, mercurial is better because he didn't.

        28 avril 2022 à 10:04:06

        Alors, Code::Blocks est maintenant fourni avec un compilateur 64 bits et tu as probablement utilisé la SDL en 32 bit (En plus je crois bien que les binaires de la 1.2 ne sont fourni qu'en 32 bits). Les binaires de la SDL2 sont eux fournis dans les deux versions. (32 et 64 bits).

        Tout ça pour dire qu'il ne faut pas mélanger 64 bits et 32 bits et vice-versa.

        Sous Code::Blocks, n'utilise pas les wizards mais crée plutôt un projet vide ou tu renseignera toi même les dossiers et fichier lib de la SDL.

        markand a écrit:

        Suis un cours à jour, celui du site est périmé.

        Pour info, la partie SDL a été enlevé du cours.

        • Partager sur Facebook
        • Partager sur Twitter
        ...
          28 avril 2022 à 10:54:16

          Certes mais l'OP a visiblement trouvé une archive le contenant encore (je ne connais aucun autre cours autre que celui du site qui utilise code::blocks et SDL 1.2).
          • Partager sur Facebook
          • Partager sur Twitter

          git is great because Linus did it, mercurial is better because he didn't.

            28 avril 2022 à 23:10:27

            Entendu je retourne bouquiner du coup merci
            • Partager sur Facebook
            • Partager sur Twitter
              29 avril 2022 à 8:54:30

              Le cours du zeste du savoir est un peu mieux
              • Partager sur Facebook
              • Partager sur Twitter

              git is great because Linus did it, mercurial is better because he didn't.

                4 mars 2023 à 19:37:54

                merci j'ai suivie le cour de Jason champagne sur YouTube très bien 

                https://youtu.be/Lwx9rSgwoDg?list=PLrSOXFDHBtfEh6PCE39HERGgbbaIHhy4j

                je fait tout sans IDE maintenant avec Visual studio code comme éditeur sa me semble mieux de ne pas être dépendant d'un logicielle comme code bloc 

                je compile en ligne de commande je préfère quand penser vous?

                et des cours de Jason champagne un avis?

                • Partager sur Facebook
                • Partager sur Twitter

                installer la sdl SDL

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown