Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utilisation SDL

    10 juillet 2018 à 9:38:03

    Bonjour,

    Je débute la partie SDL.

    J'utilise code:blocks et je vois que SDL et SDL2 sont déjà installés.

    Cependant, lorsque je crée un projet, j'obtiens des fichiers en cpp, et ce, que je fasse un projet SDL ou SDL2.

    Un paramètre manquant ?

    Cdt

    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2018 à 10:20:45

      Salut,

      Tu renommes le fichier main.cpp en main.c (ou tu crées un main.c, tu copies le contenu de main.cpp dedans et tu supprimes main.cpp). Ou encore mieux, tu n'utilises pas le projet proposé par Code::Blocks mais tu configures ton projet toi-même.

      Par contre, que veux-tu dire quand tu dis que la SDL est déjà installée ? J'ai de gros doute à ce sujet. Tu veux dire que Code::Blocks te propose de créer un projet SDL ? Si c'est seulement ça, ça ne veut pas dire qu'elle est installée. Est-ce que le projet créé compile ?

      PS : le tutoriel d'OC est basé sur la version 1.2 de la SDL. La SDL 2 est sortie depuis plus de cinq ans, je te conseille de suivre plutôt un tutoriel sur la SDL 2. Tu en trouveras sur Zeste de Savoir (voir ma signature) ou encore sur Developpez.

      • Partager sur Facebook
      • Partager sur Twitter
      Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
        10 juillet 2018 à 14:35:29

        Merci pour la reponse.

        J'ai vu "le zeste" ce matin. C'est plutôt bien ficelé.

        Renommer main.cpp en main.c.. ca contente pas du tout la compil :-(

        Je suis sous Linux et les biblis sont installées.

        begin_code.h  SDL_audio.h      SDL_config.h   SDL_error.h      SDL_getenv.h              SDL_gfxPrimitives.h  SDL_joystick.h  SDL_loadso.h  SDL_mutex.h   SDL_platform.h  SDL_rwops.h   SDL_thread.h  SDL_version.h                                                        
        close_code.h  SDL_byteorder.h  SDL_cpuinfo.h  SDL_events.h     SDL_gfxBlitFunc.h         SDL.h                SDL_keyboard.h  SDL_main.h    SDL_name.h    SDL_quit.h      SDL_stdinc.h  SDL_timer.h   SDL_video.h                                                             
        SDL_active.h  SDL_cdrom.h      SDL_endian.h   SDL_framerate.h  SDL_gfxPrimitives_font.h  SDL_imageFilter.h    SDL_keysym.h    SDL_mouse.h   SDL_opengl.h  SDL_rotozoom.h  SDL_syswm.h   SDL_types.h                                                                           
                                                                                                                                                                                

        Je suis arrivé à avoir un fichier main.c propre sans bidouillage.

        Par contre le debogueur ne se lance pas.

        Nom et version du débogueur : GNU gdb (GDB; openSUSE Leap 15.0) 8.1
        Le démarrage du débogueur a échoué :No executable file specified.
        Débogage terminé avec le statut 0

        gcc et gdb sont installés..

        Sous Windows, j'arrive à avoir les fenêtres du tuto.. jusqu'à ce que ca me dise que "il semblerait que ce soit le bon répertoire... mais... c'est sur que ca marche pas"

        Sous Linux, je n'ai pas la config SDL pour raison deja invoquée.. mais c'est debugger qui comprend pas quoi faire.

        ... je cherche...

        • Partager sur Facebook
        • Partager sur Twitter
          10 juillet 2018 à 14:40:54

          Ton message est un peu confus.

          > Renommer main.cpp en main.c.. ca contente pas du tout la compil :-(

          C'était le renommer depuis Code::Block pas à la main.

          Quel message obtiens-tu à la compilation ? Si la compilation ne fonctionne pas et qu'aucun exécutable n'est produit c'est normal que tu ne puisses pas déboguer (comment pourrait-on déboguer un programme qui n'existe pas).

          > Sous Windows, j'arrive à avoir les fenêtres du tuto.. jusqu'à ce que ca me dise que "il semblerait que ce soit le bon répertoire... mais... c'est sur que ca marche pas"

          De quel tutoriel parles-tu ? Quelle fenêtre ?

          Commence par te concentrer sur un seul OS et une seule configuration à la fois, pas les deux.

          • Partager sur Facebook
          • Partager sur Twitter
          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
            10 juillet 2018 à 16:54:37

            A la base j'étais sous Linux jusque là, et comme j'étais bloqué, j'ai essayé Windows.

            Le tuto, je veux dire le cours "Apprenez à programmer en C - Installation de la SDL". C'est de celeui la que je parle.

            C'est cette fenêtre que je n'ai pas sous Linux.

            https://user.oc-static.com/files/115001_116000/115589.png

            Ceci dit, je l'ai eu à la base sous Windows, mais maintenant, elle n'apparait plus. J'ai juste le choix du répertoire ou se trouvent les .h

            Un coup, il me dit qu'il ne trouve pas l'include.. et c'est logique puisque je pars de ce répertoire.

            Le coup suivant, un répertoire plus haut, ca ne fonctionne pas non plus... avec toujours le message "il semblerait que ce soit le bon répertoire..."

            Bon, il sembe qu'il me manque cette bibliothèque sous linux : SDL_SetVideoMode

            Je ne la trouve pas dans ma distib.. et le site SDL indique de se rapprocher de l'admin Linux...

            • Partager sur Facebook
            • Partager sur Twitter
              10 juillet 2018 à 17:02:19

              Ben, je l'ai dit, le tutoriel d'OC se base sur la SDL 1.2 et n'a pas été mis à jour pour la SDL 2. SDL_SetVideoMode n'existe plus en SDL 2.

              PS : SDL_SetVideoMode n'est pas une bibliothèque, c'est une fonction.

              EDIT : Le mieux pour installer la SDL sous Linux est d'utiliser ton gestionnaire de paquet. Tu installes le paquet libsdl2-dev. Et pour compiler avec Code::Block, tu crées un projet console, et dans le menu ProjectBuild optionsLinker settings → Other linker options, tu rajoutes `sdl2-config --cflags --libs`.

              -
              Edité par yo@n97one 11 juillet 2018 à 12:04:21

              • Partager sur Facebook
              • Partager sur Twitter
              Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                11 juillet 2018 à 0:16:38

                OC pas mis à jour.. Le problème des sites à grosse audience... le big data.. le over data.. tellement over, que c'est pas mis à jour ou bien que les recherches donnent des résultats dignes des meilleurs antiquaires de la place...

                Bon.. j'ai pas de chance.. j'ai code:blocks en français :-)

                j'ai rajouté.. on est d'accord que c'est sans les  '  ?? normalement oui, mais je prefere demander.

                donc, concretement, ca veut dire que tous les codes qui sont dans "apprenez à programmer en C" (depuis la partie SDL) ne sont pas utilisables ?

                • Partager sur Facebook
                • Partager sur Twitter
                  11 juillet 2018 à 10:03:28

                  > OC pas mis à jour.. Le problème des sites à grosse audience... le big data.. le over data.. tellement over, que c'est pas mis à jour ou bien que les recherches donnent des résultats dignes des meilleurs antiquaires de la place...

                  Et encore, t'as de la chance avec le C. Vas voir les voisins d'à côté sur le forum avec le C++.

                  > Bon.. j'ai pas de chance.. j'ai code:blocks en français :-)

                  Ça change pas grand chose.

                  > j'ai rajouté.. on est d'accord que c'est sans les ' ?? normalement oui, mais je prefere demander.

                  Non c'est avec les `. T'as juste à copier-coller.

                  > donc, concretement, ca veut dire que tous les codes qui sont dans "apprenez à programmer en C" (depuis la partie SDL) ne sont pas utilisables ?

                  Non, ils ne sont pas utilisables avec la SDL 2. Mais c'est pas une si grande perte, la plupart des codes étaient plutôt mal foutus.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                    11 juillet 2018 à 11:50:46

                    J'ai jouté les ' mais ca ne change rien à la situation.

                    Je crois quand meme que j'ai un probleme de configuration de code:blocks.
                    Des programmes (console) qui fonctionnaient avant, ne fonctionnent plus.
                    J'ai beau compiler et recompiler, j'obtiens à chaque fois le meme message :
                    Il semble que ce projet n'a pas encore été généré.
                    Voulez vous le générer maintenant ?

                    Dans le journal de Génération :
                    -------------- Générer : Release dans fun02 (compilateur : GNU GCC Compiler)---------------
                    gcc -Wall -O2 -Og  -c /home/user/C/fun/fun02/main.c -o obj/Release/main.o
                    g++  -o bin/Release/fun02 obj/Release/main.o  -s 
                    /bin/sh: g++ : commande introuvable
                    Le processus s'est terminé avec le code d'état 127 (0 minute(s), 0 seconde(s))
                    0 erreur(s), 0 avertissement(s) (0 minute(s), 0 seconde(s))
                    -------------- Exécuter : Release dans fun02 (compilateur : GNU GCC Compiler)---------------
                    Vérification de l'existence : /home/user/C/fun/fun02/bin/Release/fun02

                    Y'a gcc, mingw, g++. Ca fait beaucoup de monde.
                    g++ je ne l'ai pas trouvé dans bin. Mais est ce que je dois le trouver dans l'état ou il s'appelle autrement ?

                    Ca fonctionnait avant.. mais j'ai reinstallé tout Linux entre temps. Donc, je n'exclus pas d'avoir oublié un point de détail qui ferait toute la différence.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 juillet 2018 à 11:58:59

                      • Pourquoi tu utilises g++, g++ c'est pour le C++, pas pour le C.
                      • Ce ne sont pas des apostrophes ', mais des accents graves `.

                      Sous quelle distribution es-tu ? Essaie d'exécuter la commande g++. Si elle n'existe pas, installe-la.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                        11 juillet 2018 à 15:53:30

                        c'est ce queje comprends pas.. je veux pas utiliser C++.

                        Je rame avec C, je vais pas ajouter du ++ :-)

                        Il n'est pas installé. Mais j'ai ce code erreur dans code:blocks

                        Je suis sous OpenSuse Leap 15.

                        Pas des apostrophes ... c'est AltGr + 7 que je dois utiliser. ? C'est ca que ca veut dire ?

                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 juillet 2018 à 16:27:23

                          > Il n'est pas installé. Mais j'ai ce code erreur dans code:blocks

                          Oui, mais Code-Blocks utilise un compilateur qui doit être déjà installé (gcc pour le C, g++ pour le C++).

                          > Pas des apostrophes ... c'est AltGr + 7 que je dois utiliser. ? C'est ca que ca veut dire ?

                          Oui, c'est-ça, mais le plus simple, c'est encore tout simplement de copier-coller le contenu à mettre.

                          En résumé.

                          1. Installe gcc et g++ avec ton gestionnaire de paquets (on installe le compilateur).
                          2. Installe libsdl2-dev avec ton gestionnaire de paquets (on installe le paquet de développement de la SDL 2).
                          3. Crée un projet console.
                          4. Dans la fenêtre Project -> Build Options, choisis ton projet (et pas Debug ou Relase), et dans Linker setings -> Other options, écris `sdl2-config --cflags --libs` (on donne à l'éditeur de liens ce qu'il veut).
                          5. Exécute ton code, voici un exemple de code.
                          /* Les includes */
                          
                          int main(int argc, char* argv[])
                          {
                              if(0 != SDL_Init(SDL_INIT_VIDEO))
                                  fprintf(stderr, "Erreur d'initialisation de la SDL : %s\n", SDL_GetError());
                              else
                              {
                                  window = SDL_CreateWindow("Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
                                                            800, 600, SDL_WINDOW_SHOWN);
                                  if(NULL == window)
                                      fprintf(stderr, "Erreur de creation de la fenetre : %s\n", SDL_GetError());
                                  else
                                  {
                                      SDL_Delay(500);
                                      SDL_DestroyWindow(window);
                                  }
                                  SDL_Quit();
                              }
                              return 0;
                          }
                          

                          -
                          Edité par yo@n97one 11 juillet 2018 à 16:28:20

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                            11 juillet 2018 à 18:29:43

                            sh: /home/user/C/SDL/test/test20/bin/Release/test20: Aucun fichier ou dossier de ce type

                            Process returned 127 (0x7F)   execution time : 0.002 s
                            Press ENTER to continue.

                            A noter que si je ne rajoute pas

                            SDL_Window* window;

                            dans le main, j'ai une erreur de compilation.

                            Mais sinon, je retmbe sur process returned 127

                            gcc était installé

                            j'ai installé g++

                            mais je ne trouve pas quand j'affiche la liste des logiciels dans Yast.

                            mais ca veut dire que SDL2 fonctionne avec C++ au lieu de C ?

                            • Partager sur Facebook
                            • Partager sur Twitter
                              11 juillet 2018 à 21:17:54

                              Réussis-tu à compiler un Hello Word normal ? Quelle erreur de compilation obtiens-tu ? Peut-on avoir une capture d'écran de l'erreur et de la fenêtre Linker settings.

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                                12 juillet 2018 à 11:31:51

                                J'ai créé un nouvel utilisateur Linux et j'ai testé Code:Blocks sur un HelloWorld.

                                Le compler auto detection donne ce screen... avec en bas : no compiler : not found.. ou quelque chose approchant, je me souviens plus.

                                Et puis j'ai vu que dans l'onglet Code:Blocks, il y avait de belles lignes rouges.

                                J'ai été dans Yast pour faire une recherche sur XRC et j'ai obtenu

                                Est ce que linuxrc suffirait à résoudre la situation ?

                                Chaque fois que je lance l'application en cliquant sur le triangle vert, j'obtiens ce popup :

                                Si je dis oui, il se raffiche une fois.

                                Je redis oui et j'ai le message dans code:blocks

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  12 juillet 2018 à 11:45:00

                                  g++ commande introuvable, g++ ne semble pas installé, essaie la commande g++ dans un terminal que te renvoie-t-elle ? Et la commande gcc que te renvoie-t-elle ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                                    12 juillet 2018 à 11:59:51

                                    user@linux-z39g:~> g++
                                    If 'g++' is not a typo you can use command-not-found to lookup the package that contains it, like this:
                                        cnf g++
                                    user@linux-z39g:~> gcc
                                    gcc: fatal error: no input files
                                    compilation terminated.

                                    g++ c'est clair que je le trouve pas

                                    mais gcc Yast me dit qu'il est installé.. et je le trouve dans /usr/bin

                                    Sous Windows, je penserais à un problème de path en plus du reste. Mais sous Linux, je suis moins sur..

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      12 juillet 2018 à 12:08:09

                                      Ben faut installer g++ comme je l'ai déjà dit plus haut. zypper install g++ j'imagine.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                                        12 juillet 2018 à 12:46:03

                                        il faudra revoir l'imagination :-)

                                        mais l'idée était bonne ..

                                        en passant dans Yast ET en allant dans les rpm Développement C/C++ j'ai trouvé les 2 absents.. GCC locale et GCC C++.

                                        Et Code:Blocks a enfin ouvert la bonne fenêtre.

                                        Bon, bin, y'a plus qu'à maintenant :-)

                                        Il fallait que j'en passe par là pour découvrir le Zeste de savoir sans doute ..

                                        Un grand merci en attendant.

                                        Cordialement.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          12 juillet 2018 à 12:59:09

                                          > il faudra revoir l'imagination :-)

                                          Pourtant, j'ai toujours eu beaucoup d'imagination. ^^

                                          Parfait si ça fonctionne alors. Bonne continuation !

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs

                                          Utilisation 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