Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] Porter un jeu sous Linux.

Quelles modifications apporter au code ?

    9 juin 2006 à 11:16:17

    Salut à tous !!

    Je suis en train de créer un jeu en C++ (C++, pas C, c'est plus facile avec des classes je trouve) utilisant la SDL.

    Je programme avec l'IDE code::blocks (et mingw32), sous Windows.

    J'aimerai beaucoup porter mon projet sous Linux (notamment pour... jouer sur les PC de l'école d'ingé :p ).

    Je pense ne pas avoir utilisé de bibliothèque particulière à windows, de plus la SDL est portable.

    Mes seuls includes externes sont <stdlib.h> <stdio.h> et <time.h>

    Un petit souci cependant : quand j'ouvre mes fichiers, j'utilise des chemins comme ca :
    "data/images/icone.bmp". Il me semble qu'il faut utiliser \ sous Linux, donc faudrait t'il que je modifie ca ?

    Donc ma grande question : ya t'il des points à modifier pour porter sous Linux ? Ou alors est-ce qu'il me suffit d'ouvrir un compilo, de tout linker et compiler ?

    Je précise que je connais très très très peu Linux. (j'ai juste testé quelques live cd, je connais un peu Unix par contre).

    Merci d'avance pour toute réponse !!

    @++

    Piwaï

    PS : Ds le même ordre d'idée : et sous Unix ? enfin... Solaris 10... :p certains PC de l'école sont vraiment à la ramasse :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      9 juin 2006 à 11:22:21

      Citation : Piwaï

      Un petit souci cependant : quand j'ouvre mes fichiers, j'utilise des chemins comme ca :
      "data/images/icone.bmp". Il me semble qu'il faut utiliser \ sous Linux, donc faudrait t'il que je modifie ca ?



      Je suppose que data est un dossier dans le dossier de ton projet. Dans ce cas, tu n'as rien à changer.
      • Partager sur Facebook
      • Partager sur Twitter
        9 juin 2006 à 11:47:14

        Voui c'est bien ca, j'ai pas mis de chemins absolu.

        Rien à changer ? Parfait Parfait !!

        Me reste plus qu'à trouver une station linux, à tout installer et compiler...

        Dites, bon ok je rève un peu, mais ca existe pas un live CD linux avec compilo ET SDL installé direct ?
        • Partager sur Facebook
        • Partager sur Twitter
          9 juin 2006 à 11:56:18

          Je ne pense pas que tu puisse trouver de live CD proposant cela... Enfin, je peux me tromper ^^
          • Partager sur Facebook
          • Partager sur Twitter
            9 juin 2006 à 12:04:07

            Salut,
            le mieux est d'installer un linux cher toi en dual boot. Au début tu t'en servira pas donc met pas plus de 10go pour linux (après tu en mettra plus tu verras :D). Sinon moi je veux bien te compiler ton projet.

            @+
            • Partager sur Facebook
            • Partager sur Twitter
              9 juin 2006 à 12:19:44

              Citation : XT95

              Salut,
              le mieux est d'installer un linux cher toi en dual boot. Au début tu t'en servira pas donc met pas plus de 10go pour linux (après tu en mettra plus tu verras :D). Sinon moi je veux bien te compiler ton projet.

              @+



              Oui en même temps il a dit qu'il voulait compiler sous linux, c'est tout, hein. Il a pas dit qu'il voulait installer linux. Alors bon, c'est pas super utile. Parce que s'il veut vraiment installer linux il aura probablement d'autres raisons que "pour compiler mon jeu sous la SDL", et à ce moment là il décidera quelle place mettre :)

              Il faut faire gaffe pour les bibliothèques : par défaut elles sont en linkage dynamique, donc si tu mets un truc compilé chez quelqu'un qui a la SDL, tu pourras pas l'executer chez quelqu'un qui l'a pas.
              • Partager sur Facebook
              • Partager sur Twitter
                9 juin 2006 à 12:22:08

                Citation : Piwaï

                Un petit souci cependant : quand j'ouvre mes fichiers, j'utilise des chemins comme ca :
                "data/images/icone.bmp". Il me semble qu'il faut utiliser \ sous Linux, donc faudrait t'il que je modifie ca ?


                Non, c'est complètement l'inverse. Les backslashes '\' ne sont utilisés que sous Windows !
                • Partager sur Facebook
                • Partager sur Twitter
                  9 juin 2006 à 12:53:34

                  Citation : Piwaï


                  Je précise que je connais très très très peu Linux. (j'ai juste testé quelques live cd, je connais un peu Unix par contre).
                  [...]
                  PS : Ds le même ordre d'idée : et sous Unix ? enfin... Solaris 10... :p certains PC de l'école sont vraiment à la ramasse :)


                  Linux est un Unix (certains me diront que non car c'est un Unix-like mais ce serait chipoter parce que quelque chose de compilable sous linux - et sous un Unix-like en général - a 99% de chances de l'être sous un Unix)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 juin 2006 à 13:00:41

                    Le mieux pour ouvrir ton programme aux Linuxiens, c'est de distribuer les sources. Fais aussi un makefile, qui permettra de le compiler sur n'importe quelle plateforme (sauf Windows, parce que c'est trop galère).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 juin 2006 à 15:00:54

                      Merci à tous pour vos réponses !!!

                      remram44 : ta raison jme suis planté pour les \ c'est bien sous windows.

                      Pour l'install de Linux : j'aurai de toute façon à le faire d'ici quelques mois. Je profiterai d'une install-party dans mon école...

                      En fait, je dois rendre mon projet Mardi :D . Bon c'est vrai je m'y prend à l'arrache... Mais jme suis dit que ca aurait plus d'impact si je proposais sur le CD du projet une version Linux et une version Windows. Je donnerai de toute facon les sources aux profs (et, plus tard, sur le forum du sdz).

                      Citation : remram44

                      Fais aussi un makefile, qui permettra de le compiler sur n'importe quelle plateforme (sauf Windows, parce que c'est trop galère).



                      Bah alors donc le makefile semble la meilleure manière de permettre à un programme d'être compatible sur tous les linux... Heu... Quelqu'un a t'il un tuto bien fait sous la main sur les makefile avec la SDL (sinon, je sais que Google est mon ami, mais si vous en connaissez des bien...) ? Parce que moi pas savoir du tout comment que ca marche :euh:

                      Et enfin, pour le Unix, bah en fait c'est sur des stations SUN avec Solaris 10 et... bah c'est point comme linux. j'ai cherché partout sur le net, rien trouvé sur l'installation dla SDL sur ces vieux machins la.. ;)

                      Merci beaucoup !!

                      @++

                      Piwaï
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 juin 2006 à 16:21:42

                        Code::Blocks te permet de faire un makefile automatiquement ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 juin 2006 à 20:09:00

                          Sous Windows ?

                          EDIT : Effectivement je viens de tester l'option. Ca me génère bien un fichier nommé Makefile.

                          En fait... Je sais toujours pas bien ce que c'est qu'un Makefile. C'est un fichier texte qui dit comment linker les .o ?

                          Dedans, je vois à un endroit :

                          default_GLOBAL_INCS= -IC:/Program\ Files/CodeBlocks/include
                          default_PROJECT_INCS=
                          default_GLOBAL_LIBDIRS= -LC:/Program\ Files/CodeBlocks/lib
                          default_PROJECT_LIBDIRS=
                          default_GLOBAL_LIBS=
                          default_PROJECT_LIBS= -lmingw32 -lSDLmain -lSDL C:\Program Files\CodeBlocks\mingw32\lib\SDL_image.lib C:\Program Files\CodeBlocks\mingw32\lib\SDL_ttf.lib C:\Program Files\CodeBlocks\mingw32\lib\SDL_mixer.lib

                          --> C'est pour chez moi ca, mais ca va po marcher chez d'autres, si ?

                          Donc, une fois que j'ai fait le makefile, qu'est qu'il faut que je file comme fichiers. Supponsons que je ne veuille pas distribuer les sources (je les distribuerai, mais plus tard, après avoir commenté). Comment je fais ? :euh: Suis un peu perdu :o

                          J''ai un dossier .objs qui contient tous les objets.
                          Sachant que mon jeu nécessite sdl_image, sdl_ttf et sdl_mixer, dois-je les fournir ? Parce que les dll, c'est pour windows... mais pour linux... ???

                          Merci d'avance !! :D Vos réponses m'ont déjà permis de beaucoup avancer !!

                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 juin 2006 à 20:14:04

                            Sous n'importe quel OS, à voir maintenant si le makefile sous windows sera suffisant pour Linux, j'avoue que je ne sais pas trop...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 juin 2006 à 20:16:23

                              Cf le EDIT de ma réponse précédente ;) (chassé croisé)... Et aussi :

                              dans le makefile je vois :

                              .deps/menu.d: menu.cpp
                              @echo Calculating dependencies for "menu.cpp"...
                              @$(default_CPP) -MM $(default_CFLAGS) -MF .deps/menu.d -MT .objs/menu.o $(default_INCS) menu.cpp

                              .objs/menu.o: .deps/menu.d
                              @echo Compiling "menu.cpp"...
                              @$(default_CPP) $(default_CFLAGS) $(default_INCS) -c menu.cpp -o .objs/menu.o

                              Ca veut dire qu'il faut que je file les sources alors je suppose.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 juin 2006 à 11:24:36

                                J'ai téléchargé le live cd d'ubuntu, puis j'ai essayé d'installer la sdl avec un des tutos du sdz : pour la sdl ca a marché.

                                Par contre, pour installer code::blocks, la ca voulait po : il disait qu'il manquait un truc.. (dans le nom du truc yavait du lib et du gtk jcroi...) j'ai suivi pourtant un des tutos trouvés sur le wiki de code::blocks...

                                Bref, tant pis :s
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  11 juin 2006 à 11:29:02

                                  Bah, c'est assez simple d'installer Code::Blocks sous Ubuntu :

                                  Tu télécharges le .deb de Code::Blocks

                                  sudo apt-get install libwxgtk2.6-0 pour installer la librairie qui manque.

                                  Et après tu lances dpkg pour installer le .deb de Code::Blocks.

                                  Kr00pS
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    11 juin 2006 à 11:36:39

                                    Pour le makefile, sous Linux ça donne un truc comme ça :

                                    Citation : Moi parce qu'il faut tout faire ici

                                    # Mets ici les noms des fichiers à générer
                                    # Un fichier .o par fichier .cpp

                                    OBJ = main.o fichier.o autre_fichier.o

                                    # Nom du compilateur
                                    CPP = g++

                                    # Lib
                                    LIB = -lSDLmain -lSDL

                                    all: $(BIN)

                                    $(BIN): $(OBJ)
                                    $(CPP) $(OBJ) $(LIB) -o $(BIN)

                                    %.o: %.cpp
                                    $(CPP) -c $< -o $@



                                    PS : Et la coloration syntaxique des makefiles, hein ??
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      11 juin 2006 à 13:47:51

                                      remram44 > tu la codes quand tu veux la colo des makefiles :p
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                                        12 juin 2006 à 7:17:20

                                        Lol, défi !!

                                        Sinon, Kr00pS, voici ce que me répond ubuntu (je rappelle que c'est un live cd) :

                                        ubuntu@ubuntu:~$ sudo apt-get install libwxgtk2.6-0
                                        Reading package lists... Done
                                        Building dependency tree... Done
                                        E: Couldn't find package libwxgtk2.6-0
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          12 juin 2006 à 10:25:38

                                          Tu as installé les dépôts universe et multiverse ?
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            12 juin 2006 à 11:15:05

                                            :euh::euh::euh::euh::euh:

                                            Je sais même po ske c'est... je débarque je sais, un vrai zéro en linux.. dsl...

                                            En fait, jme suis contenté de suivre la procédure sur le wiki de codeblocks, que voici :

                                            http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks

                                            Citation : Wiki Code::Blocks


                                            Ubuntu

                                            This is a quick guide to get Code::Blocks up and running on your ubuntu based Linux distribution. It is also going to make sure you can develop wxWidgets applications on your box as well. Look at the bottom of this guide for a complete command line that will install all the packages in one operation.

                                            1. Get the latest daily build of Code::Blocks from the forum.

                                            2. Install Code::Blocks.

                                            sudo dpkg -i <Name_Of_Daily_Build.deb>

                                            3. Install the compiler.

                                            sudo apt-get install build-essential

                                            4. Install the debugger.

                                            sudo apt-get install gdb

                                            5. Install wxWidgets library. (This package is all that is needed to run any application that uses wxWidgets. ie. Code::Blocks)

                                            sudo apt-get install libwxgtk2.6-0

                                            6. Install the wxWidgets developement packages. (This is used to develop wxWidgets applications of your own.)

                                            sudo apt-get install libwxgtk2.6-dev wx2.6-headers wx-common

                                            7. (OPTIONAL) Install the wxWidgets documentation.

                                            sudo apt-get install wx2.6-doc



                                            NOTE: Here is a complete command line for steps 3 - 7. Watch for word wrap.

                                            sudo apt-get install build-essential gdb libwxgtk2.6-0 libwxgtk2.6-dev wx2.6-headers wx2.6-doc wx-common


                                            Without optional steps:

                                            sudo apt-get install build-essential gdb libwxgtk2.6-0 libwxgtk2.6-dev wx2.6-headers wx-common



                                            Comment j'installe les dépots ? Et que sont-ils censés faire ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              12 juin 2006 à 11:27:21

                                              Moi aussi j'en suis un... Mais je me refere à la doc' de ubuntu.

                                              http://doc.ubuntu-fr.org/
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 juin 2006 à 16:04:16

                                                En fait, j'ai testé mais... marche pooo
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                [SDL] Porter un jeu sous Linux.

                                                × 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