Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TUTO] Installer SDL2 avec CodeBlocks sous Windows

    23 mars 2015 à 9:20:13

    http://stackoverflow.com/questions/22446008/winapifamily-h-no-such-file-or-directory-when-compiling-sdl-in-codeblocks
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2015 à 7:50:11

      Moi, c'est quand je fais le test, il me dit : fatal error : SDL.h : No such file or directory

      Pourtant j'ai suivi le tuto à la lettre, mais je ne vois pas ce qui ne va pas.

      En espérant avoir de l'aide.

      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2015 à 10:05:55

        J'ose croire que vous l'avez mal suivi alors.

        Votre problème est que le compilateur ne trouve pas le/les fichiers .h. Il faut vérifier la configuration des includes.

        • Partager sur Facebook
        • Partager sur Twitter
          12 mai 2015 à 10:08:46

          Erreur dès le début du code. On inclue SDL.h pas SDL2/SDL.h, comme c'est la convention de la bibliothèque.

          -
          Edité par markand 12 mai 2015 à 10:10:34

          • Partager sur Facebook
          • Partager sur Twitter
          l'azerty est aux dispositions ce que subversion est aux SCM
            12 mai 2015 à 10:10:43

            Sauf qu'ici c'est un tutoriel pour installer SDL2, donc l'include est juste (en SDL2/SDL.h).
            • Partager sur Facebook
            • Partager sur Twitter
              12 mai 2015 à 10:21:46

              LittleWhite a écrit:

              Sauf qu'ici c'est un tutoriel pour installer SDL2, donc l'include est juste (en SDL2/SDL.h).

              Non, tu noteras que dans mon lien j'ai donné la documentation de SDL 2.0.

              -
              Edité par markand 12 mai 2015 à 10:22:41

              • Partager sur Facebook
              • Partager sur Twitter
              l'azerty est aux dispositions ce que subversion est aux SCM
                12 mai 2015 à 16:08:52

                Je crois que tu as raison, et que j'ai oublié quelque chose. Comment je vérifie les includes du coup ?



                -
                Edité par paulo5678 12 mai 2015 à 21:29:31

                • Partager sur Facebook
                • Partager sur Twitter
                  13 mai 2015 à 10:42:41

                  markand a écrit:

                  LittleWhite a écrit:

                  Sauf qu'ici c'est un tutoriel pour installer SDL2, donc l'include est juste (en SDL2/SDL.h).

                  Non, tu noteras que dans mon lien j'ai donné la documentation de SDL 2.0.

                  -
                  Edité par markand hier à 10:22


                  Désolé, mais vous allez avoir double soucis :

                  - ce ne sont pas des guillemets mais des chevrons que l'on est sensé utiliser ;

                  - cela ne compilera pas sous Linux, car Linux mets les .h dans un sous dossier (permettant ainsi d'avoir les deux installations SDL 1/SDL 2 en parallèle).

                  @paulo5678 :

                  Sur cette partie là du tuto :

                  "

                  Allez ensuite dans l'onglet "Search directories" (juste à côté).
                  Dans le premier onglet "Compiler", cliquez sur "Add" et ajoutez le répertoire "include" de la "SDL2-2.0.1" (là où vous l'avez déposé, dans CodeBlocks si vous avez suivi mes instructions):
                  "i686-w64-mingw32\include"

                  "

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2015 à 10:57:19

                    LittleWhite a écrit:

                    markand a écrit:

                    LittleWhite a écrit:

                    Sauf qu'ici c'est un tutoriel pour installer SDL2, donc l'include est juste (en SDL2/SDL.h).

                    Non, tu noteras que dans mon lien j'ai donné la documentation de SDL 2.0.

                    -
                    Edité par markand hier à 10:22


                    Désolé, mais vous allez avoir double soucis :

                    - ce ne sont pas des guillemets mais des chevrons que l'on est sensé utiliser ;

                    - cela ne compilera pas sous Linux, car Linux mets les .h dans un sous dossier (permettant ainsi d'avoir les deux installations SDL 1/SDL 2 en parallèle).

                    Bon, quand on me croit pas c'est bien ce qui m'énerve le plus.

                    Je te donne la documentation officielle et ça ne suffit pas ? Très bien.

                    markand@localhost ~ $ cat test.c
                    #include <SDL.h>
                    
                    int main(void)
                    {
                            return 0;
                    }
                    markand@localhost ~ $ sdl2-config --cflags
                    -I/usr/include/SDL2 -D_REENTRANT
                    markand@localhost ~ $ pkg-config --libs --cflags sdl2
                    -D_REENTRANT -I/usr/include/SDL2 -lSDL2
                    markand@localhost ~ $ gcc `sdl2-config --libs --cflags` test.c
                    markand@localhost ~ $ stat /usr/include/SDL2/SDL.h
                      File: ‘/usr/include/SDL2/SDL.h’
                      Size: 5374            Blocks: 16         IO Block: 4096   regular file
                    Device: 801h/2049d      Inode: 2125142     Links: 1
                    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
                    Access: 2015-05-12 09:26:13.086739981 +0100
                    Modify: 2014-11-27 18:08:42.000000000 +0000
                    Change: 2015-05-12 09:25:18.902471306 +0100
                     Birth: -
                    

                    Tiens, c'est drôle, même le pkg-config, sdl2-config de SDL2 définissent automatiquement le sous répertoire d'include étant donné que la convention officielle d'include c'est SDL.h.

                    C'est encore plus drôle, car c'est exactement ce qu'il y a dans le sdl2.pc.in extrait directement du dépot.

                    -
                    Edité par markand 13 mai 2015 à 10:59:27

                    • Partager sur Facebook
                    • Partager sur Twitter
                    l'azerty est aux dispositions ce que subversion est aux SCM
                      13 mai 2015 à 13:40:55

                      Ok.

                      Je serai taquin (malheureusement, je le suis), dans votre test vous utilisez les chevrons pour l'include.

                      Après, de là à voir que les gens autour de nous utilisent pkg-config ... ça serait vraiment cool, évidemment.

                      Mais du coup, sous Windows, vous préconisez d'ajouter un répétoire dans les chemins d'inclusion pour chaque bibliothèque et dans le code, vous pourriez avoir des conflits entre les entêtes ?

                      Après, j'avoue, je cherche la petite bête ;)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 mai 2015 à 14:06:23

                        LittleWhite a écrit:

                        Ok.

                        Je serai taquin (malheureusement, je le suis), dans votre test vous utilisez les chevrons pour l'include.

                        Ça ne change rien quand c'est avec des includes globales (comprendre : à utiliser avec -I)

                        Après, de là à voir que les gens autour de nous utilisent pkg-config ... ça serait vraiment cool, évidemment.

                        Aucun rapport, les modules CMake rajoutent automatiquement SDL/ ou SDL2 dans les répertoires d'include à la compilation (tout comme pkg-config, sdl2-config).

                        Mais du coup, sous Windows, vous préconisez d'ajouter un répétoire dans les chemins d'inclusion pour chaque bibliothèque et dans le code, vous pourriez avoir des conflits entre les entêtes ?

                        Je vois pas où est le problème, c'est au build system de définir les chemins d'include vers le bon répertoire pour qu'on puisse inclure le fichier d'en tête comme le préconise la bibliothèque. Si j'installe mes headers dans /usr/local/include/mon-projet/mon-répertoire/Foo.h et que ma documentation dit qu'on doit inclure #include <Foo.h> alors c'est à mon module pkg-config ou CMake ou n'importe quel autre build système de rajouter -I /usr/local/include/mon-projet/mon-répertoire pour moi lors de la compilation.

                        -
                        Edité par markand 13 mai 2015 à 14:07:30

                        • Partager sur Facebook
                        • Partager sur Twitter
                        l'azerty est aux dispositions ce que subversion est aux SCM
                          13 mai 2015 à 14:40:56

                          Bah, le build system, c'est souvent vous qui devez le configurer (Code::Blocks/Visual Studio/...) et donc à vous d'ajouter les répertoires correctement à la main (sauf dans les cas du CMake/autotools/pkg-config).

                          Note : de ce que j'ai pu voir, on peut appeler pkg-config avec CMake (ou, bien sur, utiliser FindSDL :)).

                          Je reviens sur le cas du conflit, car il me semble que je me suis mal exprimer. Imaginez, j'ai deux bibliothèques qui utilisent un fichier .h nommé de la même façon, mais n'ayant pas le même contenu. Comment le compilateur, lorsque je fais mon include, il va repérer quel est le bon fichier ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 juin 2015 à 23:17:35

                            Bonjour à tous, ayant 16ans et étant passionné par l'informatique, les 400 pages pour apprendre à programmer en C ne m'ont pas effrayé et je suis arrivé à l'installation de la SDL. Malheureusement j'ai essayé la méthode de la 1.2, la méthode citée plus haut.. etc... rien a faire ca ne fonctionne pas (je n'ai jamais installé de bibliothèques, je suis novice dans cette catégorie). Lorsque j'applique votre méthode, je créé le projet, je copie-colle votre code de test et code::blocs me demande : "It seems that this project has not been built yet now. Do you want to rebuild now ?"

                            Quelqu'un pourrait-il m'expliquer et m'aider s'il vous plait car je suis en train de perdre ma motivation.. Merci d'avance ! :)

                            PS : Excellent site :p

                            • Partager sur Facebook
                            • Partager sur Twitter
                            #V #Tigerblue77
                              17 juin 2015 à 22:25:39

                              J'ai réussi à passer outre le bug en suivant tout le tuto à un détail près ! :

                              il faut écrire (pour une raison que j'ignore) :

                              #include <SDL.h> 

                              à la place de :

                              #include <SDL2/SDL.h>

                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 juin 2015 à 23:17:41

                                Salut,

                                Parce que ça dépend du dossier que tu as désigné comme étant celui contenant les includes.

                                Par exemple si SDL.h est dans le dossier B qui, lui, est dans le dossier A, il faudra faire #include <B/SDL.h> si tu as désigné A comme étant le conteneur des includes, si tu as désigné B alors <SDL.h> suffit.

                                Bonne continuation.

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Stringman | Jeux de plateforme : Nouvelle Démo. (màj : 20 Juillet 2019)

                                  18 juin 2015 à 8:48:22

                                  ThomasTRAN a écrit:

                                  J'ai réussi à passer outre le bug en suivant tout le tuto à un détail près ! :

                                  il faut écrire (pour une raison que j'ignore) :

                                  #include <SDL.h> 

                                  à la place de :

                                  #include <SDL2/SDL.h>


                                  Pour une raison simple, c'est la convention de la bibliothèque. Comme je l'ai expliqué mainte et mainte fois précédemment.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  l'azerty est aux dispositions ce que subversion est aux SCM
                                    18 juin 2015 à 16:52:27

                                    ThomasTRAN a écrit:

                                    J'ai réussi à passer outre le bug en suivant tout le tuto à un détail près ! :

                                    il faut écrire (pour une raison que j'ignore) :

                                    #include <SDL.h> 

                                    à la place de :

                                    #include <SDL2/SDL.h>


                                    Je ne veux pas douter des talents des membres de ce site, mais je pense que mon problème ne vient pas de cette ligne de code. J'ai suivi le tutoriel à la virgule près (je vous montre mon dossier de SDL, j'ai déplacé les fichiers de "x86_64-w64-mingw32" (version x64) dans le dossier parent (le dossier "SDL2-2.0.3") et j'ai supprimé les autres fichiers et dossier s'y trouvant (notamment la x86)) :

                                    Malheureusement, toujours le même message d'erreur.. Quelqu'un peut-il éclairer ma lanterne ? SVP :D:)

                                    -
                                    Edité par tigerblue77 18 juin 2015 à 16:53:16

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    #V #Tigerblue77
                                      18 juin 2015 à 17:01:25

                                      Il faut que tu définisse le chemin des includes jusquà SDL2-2.0.3/include/SDL puis que tu fasse #include <SDL.h>.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      l'azerty est aux dispositions ce que subversion est aux SCM
                                        18 juin 2015 à 20:26:30

                                        Toujours pareil... :/ regardez (desfois que je fasse une mauvaise manipulation..) :

                                        -
                                        Edité par tigerblue77 18 juin 2015 à 20:27:02

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        #V #Tigerblue77
                                          18 juin 2015 à 21:11:16

                                          Salut,

                                          Dans la colonne de gauche, sélectionne le projet complet (SDL2) et non seulement debug. l'option "append..." devrait diffuser la config à tout le projet, mais bon...

                                          Il faut utiliser la version 32 bits (i686_w64) de la SDL2 et non la 64 (X86_64). Cela dépend du compilateur, pas de l'OS ou de la machine.

                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Stringman | Jeux de plateforme : Nouvelle Démo. (màj : 20 Juillet 2019)

                                            18 juin 2015 à 22:37:27

                                            drx a écrit:

                                            Salut,

                                            Dans la colonne de gauche, sélectionne le projet complet (SDL2) et non seulement debug. l'option "append..." devrait diffuser la config à tout le projet, mais bon...

                                            Il faut utiliser la version 32 bits (i686_w64) de la SDL2 et non la 64 (X86_64). Cela dépend du compilateur, pas de l'OS ou de la machine.


                                            Salut, merci de ton aide je la testerai demain et j'vous tient au courant ;)

                                            Je n'ai pas compris ta première phrase dsl

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            #V #Tigerblue77
                                              18 juin 2015 à 22:45:36

                                              tigerblue77 a écrit:

                                              [...] j'ai déplacé les fichiers de "x86_64-w64-mingw32" (version x64) dans le dossier parent (le dossier "SDL2-2.0.3") et j'ai supprimé les autres fichiers et dossier s'y trouvant (notamment la x86)) [...]


                                              Tu dis utiliser les fichiers 64 bits "x86_64_w64-mingw32" et moi je te dis non, il ne faut pas utiliser ceux-là, il faut utiliser ceux du dossier "i686_w64-mingw32", c'est plus clair ainsi ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Stringman | Jeux de plateforme : Nouvelle Démo. (màj : 20 Juillet 2019)

                                                19 juin 2015 à 22:35:08

                                                drx a écrit:

                                                tigerblue77 a écrit:

                                                [...] j'ai déplacé les fichiers de "x86_64-w64-mingw32" (version x64) dans le dossier parent (le dossier "SDL2-2.0.3") et j'ai supprimé les autres fichiers et dossier s'y trouvant (notamment la x86)) [...]


                                                Tu dis utiliser les fichiers 64 bits "x86_64_w64-mingw32" et moi je te dis non, il ne faut pas utiliser ceux-là, il faut utiliser ceux du dossier "i686_w64-mingw32", c'est plus clair ainsi ?


                                                Oui j'te remercie :) Malheureusement j'ai suivi à la lettre tout ce que vous m'avez dit, à savoir :

                                                -déjà je fais un dossier SDL dans lequel je place les include et lib x86

                                                -je place le .dll dans le dossier du projet (à la racine du projet)

                                                -dans les linkers je mets ca (dans l'ordre) :

                                                   -CodeBlocks/MinGW/lib/libmingw32.a

                                                   -SDL/lib/libSDL2main.a

                                                   -SDL/lib/libSDL2.dll.a

                                                -dans search directories :

                                                   -dans compiler : le dossier SDL/include

                                                   -dans linker : le dossier SDL/lib

                                                -
                                                Edité par tigerblue77 19 juin 2015 à 22:38:00

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                #V #Tigerblue77
                                                  25 juin 2015 à 10:56:22

                                                  Vous pouvez télécharger un template (projet préconfiguré), ce qui vous aidera à la configuration (au moins, comme source d'inspiration).

                                                  -> http://jeux.developpez.com/telecharger/index/categorie/709/Templates

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    27 juin 2015 à 12:13:44

                                                    il n'y a pas de solution simple pour l'installer sans template etc... ? :/ parce que pour moi qui suis un peu un débutant et qui galère à installer ma première bibliothèque sans vraiment comprendre.. c'est assez décourageant :/

                                                    -
                                                    Edité par tigerblue77 27 juin 2015 à 15:18:33

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    #V #Tigerblue77
                                                      29 juin 2015 à 9:45:10

                                                      Bien sur que si.

                                                      Il y a ce tutoriel spécifique : http://alexandre-laurent.developpez.com/tutoriels/sdl-2/installation-et-configuration/

                                                      celui-ci plus généraliste : http://alexandre-laurent.developpez.com/tutoriels/c-cpp/installation-et-configuration-d-une-bibliotheque/

                                                      Et celui en premier message de cette discussion (page 1).

                                                      -
                                                      Edité par LittleWhite 29 juin 2015 à 9:45:23

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        11 septembre 2015 à 1:53:35

                                                        bonjour,

                                                        programmeur depuis un mois, j'essaie de comprendre les procedures indiquées et c'est pas simple, je pense que les fichiers que nous avons a dezippé doivent etre detaillé dans leur construction car a un moment on ne sait plus de quel fichier include il est question.

                                                        je vous explique le truc ! dans le dossier "SDL2-2.0.3" il y a un dossier include, lib , test ET deux  sous -dossier "i686-w64-mingw32" et "x86_64-w64-mingw32" QUI eux a lors tour contiennent chacun  "include", "lib" ,"bin","share".

                                                        j imagine que vous allez pas passer votre vie a faire des tuto pour des debutants, ou meme a les mettre a jour, mais plusieurs erreurs surgissent et on est bloqués bref, on va devoir s inventer magicien et deviner les config par nous meme.

                                                        apres avoir fait trois fois la manip ,rien ne marche, (pour info j ai reussit a programmé le jeu du pendu avec le dico et tout, et deja l indication d mettre le .txt etait pas bon, heureusement que je l ai deplacé dans le dossier du projet, donc je ne suis pas si idiot mdr).

                                                        l'evolution des librairies et des ide doit jouer un mauvais tour a vos procedures et moi qui aimerait bien poursuivre sur ma lancée et ma bonne dynamique je me retrouve bloqué depuis 4 jours a essayer de comprendre quoi dezippé,  et quel .cbp il s agit, bref, cela manque d'illustration et d'affichage de contenu pour chaque fichier ou dossier evoqué.

                                                        vous n avez pas tout compris a mon explication, je vous retourne la faveur !

                                                        bon je vais ré essayé une 4e fois , et un 8e doliprane ....merci

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          11 septembre 2015 à 9:09:48

                                                          Salut,

                                                          Tu veux des images ?

                                                          En voici.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Stringman | Jeux de plateforme : Nouvelle Démo. (màj : 20 Juillet 2019)

                                                            13 septembre 2015 à 15:57:24

                                                            Bonjour,

                                                            J'ai un petit souci de compilation. J'ai suivi toutes les étapes d’installation de la SDL2 J'ai copier le programme test pour valider l’installation et quand je compile un onglet SDL_platform.h m'indique une erreur.

                                                            Elle vient d'ou? Que faire?

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            [TUTO] Installer SDL2 avec CodeBlocks sous Windows

                                                            × 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