Partage
  • Partager sur Facebook
  • Partager sur Twitter

un bête probleme de compilation

sous "codeBlocks"

Sujet résolu
    6 mai 2006 à 20:49:45

    J'ai un probleme qui se produit lors du test de la .dll de la librairie SDL.
    En effet lors du tutorial de M@teo21 ( que je respecte enormément ), on doit essayer de compiler notre nouveau projet SDL. Après bon nombres de vérification j'en ai conclus que j'avais installer comme mateo conseillait ensuite, j'ai introduit le code qu'il nous demandait de mettre et a ma grande surprise sa ne s'est pas passer comme prévus... je n'ais pas de console qui s'affiche a par un message dans la "zone que tous le programmeurs détestent". Voici le message :

    Switching to target: default
    Compiling: main.c
    Linking executable: C:\Program Files\CodeBlocks\Mes Projets\testdll\testdll.exe
    C:\Program Files\CodeBlocks\lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)

    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2006 à 21:29:47

      Peux tu montrer ton code stp ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2006 à 13:43:39

        il n'y a même pas de code a par celui qui ouvre la console c'est à dire la fonction main :
        #include <stdlib.h>
        #include <stdio.h>
        #include <SDL/SDL.h>

        int main(int argc, char *argv[])
        {

        return 0;
        }

        et en bas il y a le maudit message

        Pouriez vous m'aider s'il vous plait ?
        • Partager sur Facebook
        • Partager sur Twitter
          7 mai 2006 à 14:03:23

          Citation : artkore

          il n'y a même pas de code a par celui qui ouvre la console c'est à dire la fonction main :


          La combinaison

          #include <SDL/SDL.h>

          int main(int argc, char *argv[])

          produit un
          int sdl_main(int argc, char *argv[])

          ou un truc comme ça (main est une macro de <SDL/SDL.H>).

          C'est une technique bien connue quand on utilise un 'framework' comme SDL. Le vrai main() attendu par le linker se trouve dans la bibliothèque SDL. J'en conclue donc que tu as oublié de signaler à ton linker que tu utilisais les bibliothèques SDL ...

          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            7 mai 2006 à 14:40:41

            je te remercie grandement de ton aide mais c'est pas exactement de cela qu'il s'agit. En fait j'était en train de suivre le tutorial de Mateo et j'en suis au chapitre ou iil nous demande d'installer la librairie SDL. Et malheureusement sa ne marche pas alors que j'ai bien suivis toutes ses instructions... et j'aimerais bien savoir comment règler ce probleme vu que sinon je ne peux pas suivre la fin du cours :( . c'est aussi pour sa que je ne comprend pas tros ce que tu a voulus m'expliquer. PLEEEEEEEEEEASE HELP ME !!!
            • Partager sur Facebook
            • Partager sur Twitter
              7 mai 2006 à 14:45:54

              J'avais eu ce type de problème avec Dev-C++, j'avais rajouté en paramètre au linker "-lmingw32 -lSDLmain -lSDL", et tout était réglé. Je ne sais pas si c'est comme ça qu'on doit faire avec Code:blocks, mais ça ne coûte rien d'essayer.
              • Partager sur Facebook
              • Partager sur Twitter
                7 mai 2006 à 14:52:33

                atten tu tape #include "-lmingw32 -lSDLmain -lSDL"???
                tu l'ecrit ou sa ?
                merci a toi pour ton aide
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mai 2006 à 14:53:52

                  Non il faut pas l'inclure, il faut aller dans les paramètres du linker, je sais pas où ça se trouve dans Code:blocks, mais ça doit y être.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  un bête probleme de compilation

                  × 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