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, à 17:58

MasterYo

[Résolu] Problème SDL, code::blocks (-lSDL)

Bonjour à tous smile

J'ai un petit problème lorsque je compile le fichier généré automatiquement par Code::Blocks (SDL Project) :

L'onglet "Build Messages" me dit ceci :

-------------- Build: Debug in Test (compiler: GNU GCC Compiler)---------------

g++  -o bin/Debug/Test obj/Debug/main.o  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread 
/usr/bin/ld: escamotage incompatible /usr/lib/libSDL.a lors de la recherche de -lSDL
/usr/bin/ld: escamotage incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libSDL.a lors de la recherche de -lSDL
/usr/bin/ld: escamotage incompatible /usr/lib/../lib/libSDL.a lors de la recherche de -lSDL
/usr/bin/ld: escamotage incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libSDL.a lors de la recherche de -lSDL
/usr/bin/ld: escamotage incompatible //usr/lib/libSDL.a lors de la recherche de -lSDL
/usr/bin/ld: ne peut trouver -lSDL
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Le code généré par Code::Blocks :

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

Merci d'avance!! wink

Dernière modification par MasterYo (Le 12/08/2015, à 09:43)

Hors ligne

#2 Le 11/08/2015, à 20:11

grim7reaper

Re : [Résolu] Problème SDL, code::blocks (-lSDL)

Salut,

Ce sont des erreurs renvoyées par l’éditeur de liens. Il faut dire à Code::Block quelles sont les bibliothèques à ajouter.
À une époque c’était dans
"Settings" → "Compiler and debugger" → "Linker settings"
Pour savoir quoi ajouter, tu peux lancer la commande suivante :

pkg-config --libs sdl

Édit: hum, plutôt "Project" →"Build options" →"Linker settings" en fait.
Et d’ailleurs, si tu crées un projet de type SDL ça devrait déjà être pré-rempli comme il faut.

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

Hors ligne

#3 Le 11/08/2015, à 21:14

grigouille

Re : [Résolu] Problème SDL, code::blocks (-lSDL)

Tu dois indiquer le chemin de la bibliothèque. Pour info, avec le paquet sdl ubuntu :

$ sdl-config --libs
-L/usr/lib/x86_64-linux-gnu -lSDL
$

Comme tu as installé la bibliothèque à la main, il faut adapter le chemin.


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#4 Le 12/08/2015, à 09:43

MasterYo

Re : [Résolu] Problème SDL, code::blocks (-lSDL)

Merci à tous smile en fait j'ai trouvé avec beaucoup de tests et d'essais, (même si j'ai beaucoup de fois pensé que j'avais mis le bordel dans mon ordi), qu'en fait j'avais juste mal installé sdl... Bref... du coup, Sujet résolu wink

Hors ligne