Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Compilation/Lib SDL]

Sujet résolu
    8 avril 2006 à 16:00:36

    Tout d'abord, bonjour à tous.
    Introuction de ma personne
    Sachez d'abord que je scripte avec Kate et que je compile avec gcc (donc pas d'IDE!). Je pars du principe qu'il vaut mieux tout faire soi même (quitte à lutter...) que de se faire mâcher le travail par un IDE. Cependant, lorsque je passerai à de plus gros projets, je me mettrai à code::bloc...
    J'ai de plus installé la lib SDL à la main (./configure, make make install) -> les erreurs viennent surement de là... :-°

    Maintenant que la petite intro est faite, on peut entrer dans le vif du sujet.


    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #define clear() system("clear")
    #define init() SDL_Init(SDL_INIT_VIDEO)

    int main(int argc, char *argv[])
    {
     if(init() == -1)
     {
      fprintf(stderr, "Erreur d'initialisation de la lib. SDL : %s\n", SDL_GetError());
      exit(EXIT_FAILURE);
     }
     else if(init() == 0)
     {
      SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
      int boucleFenetre = 1;
      while(boucleFenetre)
      {
       SDL_Event event;
       SDL_WaitEvent(&event);
       switch(event.type)
       {
        case SDL_QUIT:
         boucleFenetre = 0;
         break;
       }
      }
     }
     
     SDL_Quit();
     return EXIT_SUCCESS;
    }

    ca, c'est pour mon code C.

    Maintenant voila les erreurs renvoyées par le compilo :

    /tmp/cctGLVnL.o: dans la fonction « main »:
    main.c:(.text+0x22): référence indéfinie vers « SDL_Init »
    main.c:(.text+0x2f): référence indéfinie vers « SDL_GetError »
    main.c:(.text+0x5b): référence indéfinie vers « SDL_Init »
    main.c:(.text+0x78): référence indéfinie vers « SDL_SetVideoMode »
    main.c:(.text+0x90): référence indéfinie vers « SDL_WaitEvent »
    main.c:(.text+0xb4): référence indéfinie vers « SDL_Quit »
    collect2: ld returned 1 exit status


    Si ces erreurs vous disent qqch, pourriez m'expliquer la marche à suivre parce que moi, je suis totalement largué...
    A vrai dire j'ai du mal à comprendre les erreurs renvoyées par gcc...
    Merci d'avance pour vos réponse
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 avril 2006 à 16:05:14

      C'est juste qu'il te dis qu'il na aucune reference pour les fonction de SDl .Verifie si les headers de SDl sont bien inclue et si les lib sont bien linker.
      Tu a bien les mis les belle options suivante pour le linker:
      -lmingw32
      -lSDLmain
      -lSDL

      (ces option sont sous une forme pour Dev-Cpp)
      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2006 à 16:14:32

        Au risque de paraitre complétemment débile, je comprend pas bien ce que tu me raconte ... :)
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          8 avril 2006 à 16:18:17

          En gros ton compilateur de dis qu'il ne connait pas ces fonctions.Generalement cela arrive quand il manque le protype de ces fonctions .Le prototype est absent quand le header(truc.h) n'est pas inclue par le compliateur.
          Il faut donc verifier si les headers de SDl sont bien inclué.
          Et derriere verifie si ton linker marche bien
          et s'il a toutes les option valide pour la compilation d'un projet SDL
          • Partager sur Facebook
          • Partager sur Twitter
            8 avril 2006 à 16:22:17

            2 chtites question : c'est quoi un linker?
            Comment vérifier que les headers sont biens inclus?
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2006 à 19:42:28

              Et bien j'ai eu le meme problème que toi, mais la réponse est dans la FAQ de la SDL. Par exemple pour compiler ton fichier "test.c" tu tape:
              gcc -o test test.c `sdl-config --cflags --libs`

              Et ça marche!
              • Partager sur Facebook
              • Partager sur Twitter
                13 avril 2006 à 13:23:08

                je comprend pas... J'ai fait exactement ce que tu m'a dit (en remplançant bien sur test et test.c par mes fichiers) mais ça n'a pas l'air de fonctionner... A vrai dire, la console me rend la main sans afficher le prompt (je dois surement avoir executer GCC sans compiler...). Est-ce que tu peux m'aider?

                Edit : voici l'erreur renvoyé


                Erreur d'initialisation de la lib. SDL : Unable to open a console terminal
                • Partager sur Facebook
                • Partager sur Twitter

                [Compilation/Lib 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