Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TUTO] Installer SDL2 avec CodeBlocks sous Windows

    6 mars 2014 à 11:41:20

    Bonjour à tous,

    Suite à de nombreux problèmes que rencontrent certains forumeurs pour installer la bibliothèque SDL2 sous Code::Blocks, j'ai décidé de créer ce sujet afin de les aider dans leur démarche.

    Tout d'abord, il faut que vous ayez Code::Blocks d'installé (peu importe la version).

    Rendez-vous sur la page de téléchargement de la SDL que voici: http://www.libsdl.org/index.php

    Allez dans la section "Download" puis dans "SDL 2.0". Vous aurez alors deux archives à télécharger:

    La premiere se trouve dans "Runtime Libraries" et se nomme "SDL2-2.0.1-win32-x86.zip" (notez que ce fichier correspond à la version 32 bits contrairement à l'archive "SDL2-2.0.1-win32-x64.zip" qui correspond à la version 64 bits). Pour des raisons de comptabilité, je vous recommande de télécharger la version 32 bits. A l'intérieur se trouve le fichier "SDL2.dll" que vous devez placer dans le dossier de votre projet (à côté de votre fichier .cbp). Cette DLL sera également à fournir si vous souhaitez partager votre programme.
    La seconde archive se trouve dans "Development Libraries" et se nomme "SDL2-devel-2.0.1-mingw.tar.gz". Décompressez-la et copier le dossier "SDL2-2.0.1" dans le dossier de CodeBlocks, à côté du dossier MinGW.

    Enfin, pour créer une application SDL2, ouvrez CodeBlocks, demandez à créer un "Empty project" puis donnez un nom à votre programme ("SDL2" par exemple). Ne choisissez surtout pas "SDL project" pour ne pas créer un projet "SDL 1.2".

    Maintenant que vous avez créé un projet "SDL2", il va falloir le configurer.

    Allez dans "Project" puis "Build options". Dans l'onglet "Linker settings", cliquez sur le bouton "Add" et ajouter les fichiers suivants:

    CodeBlocks/MinGW/lib/libmingw32.a
    Si on vous demande "Keep this as a relative path ?", cliquez sur NON.

    Dans le répertoire "SDL2-2.0.1" (a côté du dossier MinGW si vous avez suivi la procédure mentionnée plus haut), ajoutez les fichiers suivants:
    i686-w64-mingw32/lib/libSDL2main.a
    i686-w64-mingw32/lib/libSDL2.dll.a

    Il faut mettre impérativement ces 2 dernières libs dans l'ordre (vous remarquerez que j'ai choisi la version 32 bits à des fins de compatibilité mais vous pouvez choisir la version 64 bits si vous le souhaitez mais à ce moment là, vous devez choisir de télécharger la version 64 bits de la DLL "SDL2.dll").

    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"

    Dans le deuxième onglet "Linker" (juste à côté), ajoutez le répertoire contenant les libs:
    "i686-w64-mingw32\lib"

    Le projet SDL2 est maintenant crée.
    Copiez la DLL dans le répertoire de votre projet, à côté de votre .cbp ("SDL2.dll").

    Créez un nouveau fichier "main.c" ou "main.cpp" et sauvegardez ce fichier (afin qu'il fasse parti de votre projet).

    Vous voilà prêts à coder à l'intérieur de ce fichier.

    Voici un exemple de code que vous pouvez tester afin de vérifier que votre projet SDL2 fonctionne.

    main.cpp:

    #ifdef __cplusplus
        #include <cstdlib>
        #include <cstdio>
    #else
        #include <stdlib.h>
        #include <stdio.h>
    #endif
    
    #include <SDL2/SDL.h>
    
    int main(int argc, char** argv)
    {
        /* Initialisation simple */
        if (SDL_Init(SDL_INIT_VIDEO) != 0 )
        {
            fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError());
            return -1;
        }
    
        {
            /* Création de la fenêtre */
            SDL_Window* pWindow = NULL;
            pWindow = SDL_CreateWindow("Ma premiere application SDL2",SDL_WINDOWPOS_UNDEFINED,
                                                                      SDL_WINDOWPOS_UNDEFINED,
                                                                      640,
                                                                      480,
                                                                      SDL_WINDOW_SHOWN);
    
            if( pWindow )
            {
                SDL_Delay(3000); /* Attendre trois secondes, que l'utilisateur voit la fenêtre */
    
                SDL_DestroyWindow(pWindow);
            }
            else
            {
                fprintf(stderr,"Erreur de création de la fenêtre: %s\n",SDL_GetError());
            }
        }
    
        SDL_Quit();
    
        return 0;
    }
    
    

    Pour finir, afin d'éviter de refaire toute la configuration lorsque vous créerai un nouveau projet SDL2, vous pouvez créer un template:
    Allez dans "File", puis "Save project as template" et donnez un nom à votre template.

    Pour se servir de ce template plus tard, allez dans "File" puis "New", puis "Project" et choisissez "User templates" dans la colonne de gauche.

    Vous voilà donc prêts à programmer en utilisant la SDL2.



    -
    Edité par Gaetano-GX 6 mars 2014 à 11:58:46

    • Partager sur Facebook
    • Partager sur Twitter
      6 mars 2014 à 15:07:38

      Je tiens à préciser que vous n'êtes pas obligés de "désinstaller" la SDL 1.2 pour installer la SDL 2.0, surtout si vous l'avez installé suivant ce tuto: Comment installer la SDL 1.2 avec CodeBlocks sous windows.

      Ou bien encore si vous l'avez installé en suivant la démarche indiquée dans la "FAQs Bibliothèques tierces" (la procédure est la même).

      Cordialement.

      -
      Edité par Gaetano-GX 6 mars 2014 à 18:29:04

      • Partager sur Facebook
      • Partager sur Twitter
        7 mars 2014 à 9:36:20

        Bonjour,

        Intéressant, même si cela ne parle que de Windows (et plus encore, Code::Blocks) et que cela conseille une pratique que je tendrai à bannir.

        En effet, il est absolument mauvais d'installer les bibliothèques dans le dossier du compilateur (le dossier de Code::Blocks). En effet, lorsqu'une personne va vouloir distribuer son projet (pour se faire aider sur un forum, ou encore, pour distribuer les sources (projet Open Source), tous ceux qui vont le télécharger devront reconfigurer le projet pour correspondre à leur propre configuration (installation de Code::Blocks pouvant être différente). Cela n'en sera qu'une perte de temps. Je pense que si on doit récupérer un projet, il doit fonctionner directement (du moins, c'est le cas habituel de tout projet Open Source, on ne vous demandera pas de reconfigurer tel ou tel truc).

        Pour éviter ce soucis, je propose une arborescence pour les projets, permettant de les copier et les redistribuer facilement.

        Ensuite, comme je l'ai dit, vous ne discutez que d'une plateforme et pire (enfin, c'est un point de vue, je ne veux pas être méchant, ce n'est pas mon but, je souhaite plutôt trouvé les meilleures ressources sur Internet), vous ne parlez que de Code::Blocks. Il y a aussi Visual Studio, ou encore Qt Creator.

        Après, c'est un tutoriel pas à pas, soit, mais, je conseillerai aussi d'expliquer un peu plus ce qui est fait, quitte à expliquer un peu comment fonctionne les bibliothèques dans un projet.

        Notez aussi que l'arborescence proposée juste avant permet de faire les templates, des projets de base que l'on peut décompresser et utiliser directement :)

        Note : le code source (avec une modification), ne viendrait pas de ce tutoriel d'installation de la SDL2 ?

        Allez vous faire la même chose pour les autres éditeurs ?

        • Partager sur Facebook
        • Partager sur Twitter
          7 mars 2014 à 10:03:34

          LittleWhite alias Columbo dans le métier. Il déniche les plagias à 10km :D!

          En effet je suis plutôt d'accord avec le lieutenant, sur cette procédure. Cependant ne voyons pas le mal partout, son tuto peut tout de même servir à quelques utilisateurs. Il manque juste en effet des précisions et des petits avertissements sur cette méthode de configuration. Je ne vais pas m'attarder plus, LittleWhite a tout dit!

          Cdt,

          Kabilou

          • Partager sur Facebook
          • Partager sur Twitter
          "Software is like sex, it’s better when it’s free"
            7 mars 2014 à 10:13:20

            Bonjour,

            C'est bien simple, j'ai bien précisé dans le titre de mon message que cette installation de "SDL 2.0" concerne L'IDE CodeBlocks et non les autres...Dans le cas contraire j'aurais omis de citer C::B et mon titre se serait appelé "Installer SDL2 avec un IDE sous Windows" et j'aurai expliqué la démarche à suivre pour les autres IDE.

            Seulement voilà, je ne travaille qu'avec CodeBlocks et je ne connais pas les manipulations à faire pour les autres IDE. De plus, ce site est destiné aux débutants comme aux personnes confirmées. Je doute fort qu'un novice en programmation (dans ce cas présent, en "C") s'arrache les cheveux pendant plusieurs jours pour arriver à installer la SDL. Ici, presque tous les tutos sont abordables aux débutants. Aussi, j'ai voulu respecter cette démarche afin de les aider (les débutants) afin qu'ils puissent coder au plus vite. Je doute fort qu'ils préfèrent maîtriser la/les démarche(s) à suivre pour installer une lib comme SDL plutôt que d'apprendre à coder efficacement et s'améliorer dans ce domaine (la programmation).

            Ceci dit, c'est (je pense) avec l'expérience et des recherches adéquates sur le net qu'on apprend dans le temps à installer une bibliothèque. Je ne conteste pas vos liens, ils sont parfait (pour preuve, le code que j'ai fourni est inspiré de développez.com, que j'ai légèrement modifié). Y a t-il plagiat ?

            Si oui, je m'en excuse mais de toute façon, on peut trouver d'autres exemples de code SDL2 sur le net pour vérifier que la configuration a été bonne.

            Quand à l'arborescence, rien n'empêche de placer le fichier décompressé de la SDL2 à la racine du disque dur ou ailleurs. Comme je l'ai dit, je m'adresse avant tout aux débutants. Je n'ai pas testé les templates que vous citez mais libre à l'utilisateur de les utiliser s'il le souhaite. Le code que j'ai fourni est un code de base afin de tester la bonne configuration d'un projet SDL2.

            Bien cordialement.

            • Partager sur Facebook
            • Partager sur Twitter
              7 mars 2014 à 10:24:39

              Pour ma part, je ne remets pas en doute l'utilité de ce tuto, je ne me permettrai pas un tel comportement. Je dis juste que quelques précisions auraient pu être donné en plus, maintenant c'est fait. Les personnes peuvent donc utiliser ton tuto en sachant exactement ce qu'elles font :D

              Cdt,

              Kabilou

              • Partager sur Facebook
              • Partager sur Twitter
              "Software is like sex, it’s better when it’s free"
                7 mars 2014 à 10:51:18

                Pour l'histoire du plagiat, je ne l'ai jamais pensé comme tel. Ce qui m'amuse et qui m'étonne, c'est que vous prenez le code du tutoriel de Developpez.com, dans lequel l'histoire de l'arborescence est expliquée avec argumentation (permet la distribution d'un projet facilement, la création de template de projet...) et que vous l'utilisez pour expliquer les choses que je jugerai "à ne pas conseiller". Vous savez, ce n'est pas pour moi, que je défend une telle arborescence, mais, pour les novices. En effet, ce sont les novices qui vont demander de l'aide sur les forums, qui vont montrer leurs projet et tout et, ce sont possiblement des novices (d'un niveau un peu plus haut) qui vont répondre. Moi, personnellement, je sais configurer et reconfigurer un projet pour répondre à mon besoin. Mais je ne vois pas pourquoi, les tutoriels se tuent à mettre les fichiers des bibliothèques, dans les fichiers du compilateur/IDE, faisant que la distribution (et donc la demande d'aide) en devient difficile.

                Là, vous expliquez une configuration, qui fait que si le débutant copie son projet sur un forum (ce qui arrive souvent, car il a besoin de comprendre les erreurs et de progresser), alors celui qui le télécharge, va être embêté car il doit reconfiguré la moitié du projet pour sa propre machine. C'est une perte du temps et un frein à aider les gens.

                En soit, il n'y a aucun problème avec le fait de faire un tutoriel pour les débutants, même si je pensais que le tutoriel de Developpez.com sur la SDL 2 est aussi pour les novices (ou alors, que l'on m'explique la raison qui fait qu'il ne l'ai pas), juste que je pense que l'on devrait aussi leur apprendre les bonnes pratiques directement.

                Alors, si l'esprit est : "on doit coder au plus vite" donc, on fait pas ce qu'il y a (je pense, peut être je me trompe, mais personne ne m'indique où je me trompe pour le moment) de mieux, autant prendre un template de projet, le décompresser et hop, on code (même pas besoin de configurer quoi que ce soit). Et là, on peut pas faire plus simple, car on évite la configuration de la bibliothèque.

                La seconde raison pour laquelle je suis pour l'explication un peu plus détaillée d'une bibliothèque est que la SDL 2 est souvent utilisée avec d'autres bibliothèques, qu'il faudra elle aussi configuré. Du coup, autant apprendre aux gens à pécher, que de pécher le poisson pour eux.

                (Et je rappele, je n'ai jamais parler de plagiat et il ne peut y avoir, car c'est un code qui est libre de droit :)). Je ne remets pas non plus votre tutoriel en cause, il a raison d'être, vu que chaque jour, ce forum accueille trois questions sur l'installation de la SDL (1 ou 2), juste j'essaie de montrer les points pour lesquels on peut l'améliorer et le rendre nickel (enfin, peut être que mon point de vue est biaisé, je ne sais pas trop).

                -
                Edité par LittleWhite 7 mars 2014 à 10:55:30

                • Partager sur Facebook
                • Partager sur Twitter
                  7 mars 2014 à 11:56:01

                  Un grand merci pour ce tuto qui m'a bien aidé. Je dois dire que ça fait 3 jours que je galère et c'est ce tuto vraiment bien détaillé qui m'a sauvé. Je le trouve plus explicite que celui de Developpez.com.

                  Surement parce que je débute ! J’espère mieux maitriser tout ça avec le temps et la pratique et réussir à faire une arborescence pour que mon projet puisse être copier et redistribuer sans soucis.

                  En tout cas, grâce à toi Gaetano-FR (et Mateo21 pour son cours) je vais pouvoir découvrir la SDL. Merci

                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 mars 2014 à 12:10:34

                    Bonjour aniaa !

                    En ce qui concerne l'arborescence, LittleWhite a raison, si tu comptes distribuer ton projet complet (et pas seulement le code source ou l'exécutable) ou bien si tu travailles en équipe sur un même projet.

                    Je n'ai pas lu le sujet qui traite de l'arborescence de developpez.com mais je pense que pour un travail de groupe, il est en effet préférable de décompresser l'archive de la SDL2 (ou toute autre lib) à la racine du disque dur afin que tout le monde puisse facilement avoir la même configuration (corrigez-moi si je me trompe LittleWhite).

                    @ aniaa: Ceci dit, si tu viens d'installer la "SDL 2.0", ne la "désinstalle" pas pour autant. Mais sache que d'autres méthodes sont possible.

                    Bien cordialement.

                    EDIT: si tu comptes suivre le tuto de M@théo21 sur la SDL, il te faudra installer la SDL 1.2, mais rien ne t'empêche de garder la SDL 2.0 en parallèle.

                    -
                    Edité par Gaetano-GX 7 mars 2014 à 12:13:40

                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 mars 2014 à 12:38:36

                      Salut,

                      De toute façon, ce tuto va finir par se retrouver 5 pages plus loin avec celui qui a déjà été fait, et comme la plupart de ceux qui en sont là ne savent de toute façon pas faire une recherche, dans 3 jours on sera de nouveau envahis avec les demandes d'installation SDL...

                      Mais ça part d'une bonne intention.

                      -
                      Edité par drx 7 mars 2014 à 12:39:05

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Bonhomme !! | Jeu de plateforme : Prototype.

                        7 mars 2014 à 12:45:13

                        Salut drx !

                        Oui je pense aussi que ce tuto va finir par couler mais de toute façon ma signature propose les liens pour installer la SDL 1.2 ainsi que la SDL 2.0.

                        De plus, avec l'accord d'un membre du staff, ce tuto figure désormais dans la "FAQs Bibliothèques Tierces".

                        Faudrait vraiment y mettre de la mauvaise volonté pour ne pas savoir où chercher.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 mars 2014 à 13:09:43

                          @Gaetano-FR : ce n'est pas à la racine du disque dur, que je suggère de placer les fichiers de la SDL (le problème serait le même), mais directement dans le projet. Vous avez le .cbp et à coté, les dossiers include et lib. Comme ça, lorsque vous copier votre dossier, la bibliothèque y est avec.

                          Sinon, il semble qu'écrire un cours sur le SDZ soit simple. Pourquoi ne pas avoir utiliser l'outil du site et n'avoir fait qu'un message sur le forum (qui risque de se perdre :'( ) ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 mars 2014 à 13:16:06

                            Je crois que l'outil d'édition des tutos a souffert du passage à la V4 et ne s'en est pas encore relevé... D'ici là il faudra que ça fasse l'affaire.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Bonhomme !! | Jeu de plateforme : Prototype.

                              7 mars 2014 à 13:31:27

                              Re-bonjour LittleWhite,

                              Votre idée de placer les dossiers include et lib à côté du .cbp n'est pas bête du tout. Je n'y avais pas pensé. Seulement, cette méthode est utile que si l'on prends la peine de créer un template immédiatement après avoir configuré le projet comme vous venez de le mentionner.

                              Sinon, en ce qui concerne la création d'un cours, je ne pense pas (pour un si petit tuto) que ce soit nécessaire. Surtout que comme je l'ai dit à drx, ce mini tuto figure maintenant dans la "FAQs Bibliothèques Tierces".

                              Enfin je dis ça, mais alors il faudrait faire un cours complet sur l'installation de la "SDL 1.2" et de la "SDL 2.0", tout en prenant en compte les remarques et bonnes idées que vous avez mentionnées; afin que le lecteur comprenne ce qu'il fait en installant de telles bibliothèques.

                              PS: vous pensez qu'en ce qui concerne la "SDL 1.2" (dont un template est disponible dans CodeBlocks) il serait utile d'employer la méthode que vous avez cité (placer les dossiers lib et include à côté du .cbp) ? Si je dis ça , c'est parce que lorsque l'on crée un projet "SDL 1.2", CodeBlocks nous demande (avant la phase finale de création du projet) où se trouve le dossier SDL (alors que le dossier n'a pas été encore créé).

                              Dans mon cas, le dossier SDL 1.2 se trouve à côté du dossier "MinGW" dans CodeBlocks.

                              Sinon, rien à voir, mais je déteste la démarche qui consiste à toucher au dossier MinGW pour y placer les dossiers lib et include. Ça fait un peu "sale" je trouve.

                              Cordialement.

                              -
                              Edité par Gaetano-GX 7 mars 2014 à 13:55:35

                              • Partager sur Facebook
                              • Partager sur Twitter
                                7 mars 2014 à 14:09:37

                                Moi, je n'utilise jamais les template de projets de Code::Blocks. Il demande certes l'emplacement de la SDL, mais il semble qu'il ne le fasse qu'une fois. Je fais toujours un projet vide, ou je copie un ancien projet (à la sauce des projets de base proposés ici).

                                Pour l'histoire du grand cours complet installation SDL 2, c'est ce qui est proposé sur Developpez.com, ou, pour vous, qu'est ce qui manque ?

                                -
                                Edité par LittleWhite 7 mars 2014 à 14:12:38

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 mars 2014 à 14:38:07

                                  Re-bonjour !

                                  En ce qui concerne le template "SDL 1.2" proposé par CodeBlocks, il est possible de modifier l'emplacement du dossier de la SDL à chaque nouveau projet, à l'avant dernière étape de la création du projet. Votre lien sur les templates "SDL 1.2" est intéressant mais si on sait installer la "SDL 1.2" tout seul, on sait aussi "de facto" installer SDL_image, SDL_ttf, SDL_gfx et SDL_net. La procédure est la même. J'ai une question: selon vous, où faudrait-il placer le dossier "SDL 1.2" pour pouvoir partager ses projets en équipes ? A la racine du disque dur pour une question de simplicitée ? (c'est une question).

                                  Sinon, en ce qui concerne l'installation de la "SDL 2.0", vous avez énoncé la meilleure solution, à savoir placer les dossiers lib et include à côté du .cbp. Je ne voit pas ce qui peut se faire de mieux.

                                  A++

                                   EDIT: ah et au fait, quand je disais dans mon dernier post que je n'aime pas toucher au dossier MinGW, je voulais parler des libs qui possèdent un template (comme dans CodeBlocks par exemple), et non des autres libs. Perso, pour le son j'utilise "FMOD 3" et il a bien fallu que Je crée un dossier FMOD avec les headers dedans, dans le dossier MinGW. Je me suis mal exprimé (autant pour moi).

                                  -
                                  Edité par Gaetano-GX 7 mars 2014 à 14:43:53

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    7 mars 2014 à 15:27:28

                                    Toutes les bibliothèques nécessaires à un projet, doivent être mises avec le projet. Le problème est définitivement le même, que ce soit SDL 1.2 ou SDL 2 ou pour FMOD ou autre. Le but est d'avoir les dépendances du projet, dans le dossier du projet, pour distribuer facilement le projet et faire qu'il compile partout.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      7 mars 2014 à 15:38:11

                                      Je suis d'accord mais dans le cas de "SDL 1.2", admettons que l'on crée un projet nommé SDL_APP", il faudrait dabord créer un dossier dans lequel se trouverait les dossiers lib et include, puis, à la création du projet C::B (en utilisant le template fourni) le dossier (une fois créé par C::B) se trouverai dans le sous dossier et contiendrai le .cbp. Je sais pas si je me suis bien fait comprendre.

                                      Autre solution: créer un "Empty project" et tout configurer à la main...c'est faisable mais peu-être un peu lourd pour un débutant.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        7 mars 2014 à 16:10:06

                                        Oui, j'utilise uniquement "projet vide". Le reste n'est d'une part, pas didactique et d'une seconde part, disponible que pour SDL (et quelques autres bibliothèques). En plus, ça a tendance à configurer le projet d'une façon dont je n'aime pas beaucoup.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          8 mars 2014 à 9:04:51

                                          Suite à cette discussion qui s'est avérée fort intérressante et constructive (notamment grâce à LittleWhite), je tiens à proposer une autre méthode concernant l'installation de la "SDL 2.0" afin que tout programmeur puisse distribuer son/ses projet(s) "SDL 2.0" sans que d'autres personnes n'aient à re-configurer entièrement le(s) projet(s) en question (dans le cas d'un travail en équipe par exemple).

                                          Tout d'abord, il faut que vous ayez Code::Blocks d'installé (peu importe la version).

                                          Rendez-vous sur la page de téléchargement de la SDL que voici: http://www.libsdl.org/index.php

                                          Allez dans la section "Download" puis dans "SDL 2.0". Vous aurez alors deux archives à télécharger:

                                          La premiere se trouve dans "Runtime Libraries" et se nomme "SDL2-2.0.1-win32-x86.zip" (notez que ce fichier correspond à la version 32 bits contrairement à l'archive "SDL2-2.0.1-win32-x64.zip" qui correspond à la version 64 bits). Pour des raisons de compatibilité, je vous recommande de télécharger la version 32 bits. A l'intérieur se trouve le fichier "SDL2.dll" que vous devez placer dans le dossier de votre projet (à côté de votre fichier .cbp). Cette DLL sera également à fournir si vous souhaitez partager votre programme.
                                          La seconde archive se trouve dans "Development Libraries" et se nomme "SDL2-devel-2.0.1-mingw.tar.gz". Vous n'êtes pas obligés de la décompresser tout de suite (le dossier "SDL2-2.0.1" qu'elle contient ne nous servira qu'après avoir créé un projet avec CodeBlocks).

                                          Ouvrez CodeBlocks, demandez à créer un "Empty project" puis donnez un nom à votre programme ("SDL2" par exemple). Ne choisissez surtout pas "SDL project" pour ne pas créer un projet "SDL 1.2".

                                          Maintenant que vous avez créé un projet "SDL2", il va falloir le configurer.

                                          Allez dans "Project" puis "Build options". Dans l'onglet "Linker settings", cliquez sur le bouton "Add" et ajoutez le fichier suivant:

                                          CodeBlocks/MinGW/lib/libmingw32.a

                                          Si on vous demande "Keep this as a relative path ?", cliquez sur OUI.

                                          A présent, vous pouvez décompresser la deuxième archive que vous avez téléchargé ("SDL2-devel-2.0.1-mingw.tar.gz") et copiez son contenu dans le dossier de votre projet CodeBlocks, à côté du ".cbp". Le dossier décompressé se nomme "SDL2-2.0.1".

                                          Allez à nouveau dans "Project" puis "Build options", et dans l'onglet "Linker settings", ajoutez les deux fichiers suivants (qui se trouvent dans le dossier "SDL2-2.0.1", à côté de votre .cbp):

                                          i686-w64-mingw32/lib/libSDL2main.a
                                          i686-w64-mingw32/lib/libSDL2.dll.a

                                          Il faut mettre impérativement ces 2 dernières libs dans l'ordre (vous remarquerez que j'ai choisi la version 32 bits à des fins de compatibilité mais vous pouvez choisir la version 64 bits si vous le souhaitez mais à ce moment là, vous devez choisir de télécharger la version 64 bits de la DLL "SDL2.dll").

                                          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é, c'est à dire à côté de votre .cbp si vous avez suivi mes instructions):
                                          "i686-w64-mingw32\include"

                                          Dans le deuxième onglet "Linker" (juste à côté), ajoutez le répertoire contenant les libs:
                                          "i686-w64-mingw32\lib"

                                          Le projet SDL2 est maintenant crée.
                                          Copiez la DLL dans le répertoire de votre projet, à côté de votre .cbp ("SDL2.dll").

                                          Créez un nouveau fichier "main.c" ou "main.cpp" et sauvegardez ce fichier (afin qu'il fasse parti de votre projet).

                                          Vous voilà prêts à coder à l'intérieur de ce fichier.

                                          Voici un exemple de code que vous pouvez tester afin de vérifier que votre projet SDL2 fonctionne.

                                          main.cpp:

                                          #ifdef __cplusplus
                                              #include <cstdlib>
                                              #include <cstdio>
                                          #else
                                              #include <stdlib.h>
                                              #include <stdio.h>
                                          #endif
                                          
                                          #include <SDL2/SDL.h>
                                          
                                          int main(int argc, char** argv)
                                          {
                                              /* Initialisation simple */
                                              if (SDL_Init(SDL_INIT_VIDEO) != 0 )
                                              {
                                                  fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError());
                                                  return -1;
                                              }
                                          
                                              {
                                                  /* Création de la fenêtre */
                                                  SDL_Window* pWindow = NULL;
                                                  pWindow = SDL_CreateWindow("Ma premiere application SDL2",SDL_WINDOWPOS_UNDEFINED,
                                                                                                            SDL_WINDOWPOS_UNDEFINED,
                                                                                                            640,
                                                                                                            480,
                                                                                                            SDL_WINDOW_SHOWN);
                                          
                                                  if( pWindow )
                                                  {
                                                      SDL_Delay(3000); /* Attendre trois secondes, que l'utilisateur voit la fenêtre */
                                          
                                                      SDL_DestroyWindow(pWindow);
                                                  }
                                                  else
                                                  {
                                                      fprintf(stderr,"Erreur de création de la fenêtre: %s\n",SDL_GetError());
                                                  }
                                              }
                                          
                                              SDL_Quit();
                                          
                                              return 0;
                                          }
                                          
                                          

                                          Pour finir, afin d'éviter de refaire toute la configuration lorsque vous créerai un nouveau projet SDL2, vous pouvez créer un template:
                                          Allez dans "File", puis "Save project as template" et donnez un nom à votre template.

                                          Pour se servir de ce template plus tard, allez dans "File" puis "New", puis "Project" et choisissez "User templates" dans la colonne de gauche.

                                          Vous voilà donc prêts à programmer en utilisant la SDL2.



                                          -
                                          Edité par Gaetano-GX 8 mars 2014 à 11:57:12

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            8 mars 2014 à 10:58:42

                                            Oui, c'est plus proche de la configuration proposée dans le tutoriel d'installation de la SDL 2 de Developpez.com.

                                            Toutefois, il y a une chose sur laquelle je douterais :

                                            "Si on vous demande "Keep this as a relative path ?", cliquez sur NON."

                                            Hum, mais je crois que cela ne marchera que si l'utilisateur qui reçoit le projet a la même installation de Code::Blocks (dans le disque C:\)

                                            Sinon, ça me semble ok.

                                            -
                                            Edité par LittleWhite 8 mars 2014 à 23:08:20

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              8 mars 2014 à 11:59:41

                                              LittleWhite a écrit:

                                              Toutefois, il y a une chose sur laquelle je douterais :

                                              "Si on vous demande "Keep this as a relative path ?", cliquez sur NON."

                                              J'ai édité et j'ai suggéré de cliquer sur "OUI".
                                              Sinon (c'est un détail), mais votre lien est mort (erreur 404). Rien de grave, ce tuto est facilement retrouvable sur developpez.com.

                                              En tout cas, merci de m'avoir répondu.

                                              Cordialement.

                                              -
                                              Edité par Gaetano-GX 8 mars 2014 à 12:02:20

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                8 mars 2014 à 23:09:23

                                                Merci pour le lien.

                                                Pas de problème pour la réponse.

                                                Notez que la SDL 2.0.2 vient tout juste de sortir \ o / (ça fait deux heures que c'est en ligne).

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  2 octobre 2014 à 21:16:39

                                                  Bonjour ! 

                                                  Lorsque je suis le tuto je crée un projet n'ayant aucun fichier source, comment dois-je faire pour y ajouter pour fichier main.c svp ? 

                                                  Merci ! 

                                                  Edit : Les deux textes ne sont pas indentiques, donc les liens dans les réglages de Code Blocks non plus... J'ai déja tester les deux façon de faire et rien n'a changer, cependant je ne sais toujours pas quel texte est le bon :/ 

                                                  A présent, vous pouvez décompresser la deuxième archive que vous avez téléchargé ("SDL2-devel-2.0.1-mingw.tar.gz") et copiez son contenu dans le dossier de votre projet CodeBlocks, à côté du ".cbp". Le dossier décompressé se nomme "SDL2-2.0.1".

                                                  La seconde archive se trouve dans "Development Libraries" et se nomme "SDL2-devel-2.0.1-mingw.tar.gz". Décompressez-la et copier le dossier "SDL2-2.0.1" dans le dossier de CodeBlocks, à côté du dossier MinGW

                                                  -
                                                  Edité par matvirus007 2 octobre 2014 à 22:18:02

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 octobre 2014 à 10:13:51

                                                    Il faut créer votre fichier main.c vous même et l'ajouter au projet en faisant clic droit sur le projet (dans l'arborescence à gauche) et faire : "Add existing files".
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      3 octobre 2014 à 13:01:48

                                                      Merci pour la réponse ! :) 

                                                      Cependant j'ai maintenant le problème du winapifamily.h qui n'est pas trouver, et à ce que j'ai vu sur le forum, 

                                                      c'est parce que la version SDL-2.0.3 a des changements... et je souhaite suite le cours de Mateo plutot que faire des recherche ou je vais vite m'y perdre, puisque je suis débutant. 

                                                      Donc je laisse tomber SDL 2.0.3 ! ><

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        3 octobre 2014 à 13:34:51

                                                        Sous Code::Blocks, il faut ajouter mingw32 dans les bibliothèques à lier.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          7 février 2015 à 23:33:54

                                                          Je galère vraiment. J'ai fait exactement ce que Gaetano a dit. D'abord l'IDE me dit "Il faut d'abord build le projet. Voulez-vous build ?" mais je clique yes et ça revient non stop.

                                                          Ensuite, je refais un projet pareil et maintenant, c'est un problème avec le winapifamily.h dans le SDL_platform.h

                                                          Je ne sais plus quoi faire. ET tout ça en plus pour simplement ajouter la bibliothèque SDL_Image parce qu'elle ne fonctionne pas avec le SDL 1.2.

                                                          Je suis bloqué dans le cours de Mateo car ce dernier utilise toujours cette fameuse fct SLD_Load

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            7 février 2015 à 23:56:25

                                                            Never Mind. J'ai trouvé la SDL_Image en 1.2 . Finalement, j'ai pas besoin d'installer la SDL2 .
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              22 mars 2015 à 16:34:38

                                                              bonjour

                                                              quand je lance le programme j'ai un message d'erreur

                                                              ||=== Build: Debug in SDL2_template (compiler: GNU GCC Compiler) ===|

                                                              C:\Program Files (x86)\CodeBlocks\SDL2-2.0.3\i686-w64-mingw32\include\SDL2\SDL_platform.h|121|fatal error: winapifamily.h: No such file or directory|

                                                              ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

                                                              je comprends pas
                                                              • 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