Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème compilation SDL

Sujet résolu
    18 janvier 2021 à 12:47:06

    Hello à tous!

    Je me suis lancé sur l'apprentissage de la bibliothèque SDL. Je programme sous Linux donc j'ai installé avec le terminal la SDL2 pour les développeurs. Cependant lorsque j'essaye d'initialiser la SDL dans un programme et que je compile j'ai ceci qui s'affiche :

    /usr/bin/ld: /tmp/cckFVbmG.o: in function `main':
    /home/mfr/git/c/SDL/SDL.c:17: undefined reference to `SDL_Init'
    collect2: error: ld returned 1 exit status

     J'utilise cet include dans mon fichier source :

    #include <SDL/SDL.h>



    Je précise que mon alias gd signifie : alias gd='gcc -ansi -pedantic-errors -Wall -Wextra -g -D_DEFAULT_SOURCE '

    j'ai essayé de créer cet alias là mais ne fonctionne pas à la compilation : alias gds='gcc -ansi -pedantic-errors -Wall -Wextra -g -D_DEFAULT_SOURCE `sdl2-config --cflags --libs=` '

    J'en appel donc à votre généreuse et précieuse aide afin de me permettre de compiler et d'apprendre l'utilisation de la SDL.

    Je suis aussi preneur si un Makefile se baladerait par là pour la SDL...

    Merci d'avance :)

    EDIT : avec cette commande cela fonctionne :

    gd SDL.c -lSDLmain -lSDL

    Faut que j'arrive à intégrer dans mon Makefile car jusqu'ici pas réussis.

    -
    Edité par Moshé Frydmann 18 janvier 2021 à 15:04:32

    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2021 à 17:32:20

      Je rajoute que si on veut compiler avec SDL_Image, il faut mettre ceci dans le terminal Linux :

      gcc main.c page_accueil.c -lSDLmain -lSDL -lSDL_image
      

      La c'est dans le cas où tous mes fichiers se trouvent au même endroit.

      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2021 à 20:16:45

        Bonjour,

        Avec la SDL2 dans la ligne de commande il faut utiliser:

        gcc [...] -lSDL2main -lSDL2 -lSDL2_image


        Notes bien les '2' en opposition avec l'exemple que tu donnes.:)

        • Partager sur Facebook
        • Partager sur Twitter

        Mon site web de jeux SDL2 entre autres : https://www.ant01.fr

          20 janvier 2021 à 21:01:13

          Salut Warren. T’es sur ? Car sans ça cela fonctionne
          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2021 à 21:47:57

            Bonjour,

            Quand je lance la commande suivante dans un terminal sous ubuntu j'ai ceci:

            :~$ sdl2-config --cflags
            -I/usr/include/SDL2 -D_REENTRANT
            :~$ sdl2-config --libs
            -lSDL2
            

            sachant que 'sdl2-config' est la solution la plus simple pour utiliser la SDL2 sous ubuntu. 'sdl2-config --cflags' sert pour la compilation des sources et 'sdl2-config --libs' sert pour l'étape de linkage. Avec ce que tu proposes comme commande (-lSDLmain -lSDL) tu ne pourras utiliser que la SDL en version 1.x , soit une version obsolète. Note que par exemple, il n'y a pas de SDL_Flip() dans la SDL2.x, on utilise à la place SDL_RenderPresent(SDL_Renderer*) , donc il te faut faire un choix. Je te conseille vivement d'embrayer sur la SDL en version 2.

            Post scriptum: Je viens de voir les autres sujets ouverts par Shémo sur la SDL2 et le shell . Du coup désolé pour le post un peu inutile.:-°

            -
            Edité par Warren79 21 janvier 2021 à 21:53:30

            • Partager sur Facebook
            • Partager sur Twitter

            Mon site web de jeux SDL2 entre autres : https://www.ant01.fr

              22 janvier 2021 à 10:17:50

              Merci pour ces recommandations, effectivement dans un autre post j'avais reçue le même conseil. Merci en tout cas :)
              • Partager sur Facebook
              • Partager sur Twitter

              problème compilation 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