Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le Site du Zéro pour Linux

    28 avril 2006 à 15:01:17

    bonjour :)

    connaissait vous un site un peu comme le site du zero (simplicité, et trés bien expliqué) sur la programmation sous Linux ?
    je recherche surtout par exemple des sites parlant d'OpenGL, SDL... bref comment inclure les librairies ^^
    un comme le opengl32.lib sdl.lib sdlmain.lib mais comment les inclures sous Linux ?
    et je voudrai savoir ou est le dossiers "include" pour GCC.
    Car je veux rajouter par exemple les .h de la SDL ou des extensions .h OpenGL (ou meme autre librairie)

    merci (surtout au linuxiens je pense :p )
    • Partager sur Facebook
    • Partager sur Twitter
      28 avril 2006 à 15:29:20

      les headers sont dans le dossier /usr/includes

      par exemple, les headers de la SDL sont dans le dossier /usr/includes/SDL.

      quand aux .a, .la .so etc, elles sont dans le dossier /usr/lib
      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2006 à 16:49:07

        Il n'y a pas beaucoup de différences entre la programmation sous Linux et sous Windows.
        Le principal truc qui peut varier ce sont les librairies disponnibles qui ne sont pas les mêmes.

        Si, comme moi, tu veux faire des programmes portables, arrange toi pour utiliser des librairies portables aussi.

        Si tu veux utiliser OpenGL, il y a Glut qui est intéressant pour débuter, relativement simple à prendre en main, et pas mal de tutos sur Internet.
        De plus la librairie Glut est multiplateforme (Windows/Linux/...).
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          28 avril 2006 à 18:40:14

          Il y a d'autant moins de différences que sous Windows tu utilises souvent MinGW, qui est un port de GCC (utilisé par Code Blocks ou Dev-C++), donc les commandes pour les librairies sont les mêmes, juste que avec un IDE on se laisse plus guider :p

          Installation : super simple, avec le package manager il suffit d'installer la bonne lib.
          Linkage : ajouter au compilateur l'option -lnom ou nom le nom de la lib, par exemple -lSDL ou -lopengl.

          Le reste, c'est pareil, tu inclus les .h et tout, il suffit juste de savoir compiler en ligne de commande ;)
          • Partager sur Facebook
          • Partager sur Twitter
            28 avril 2006 à 18:52:31

            En général, tu installes les paquets de la librairie que tu veux, qui la met à ta place au bon endroit, et après tu dispose d'un utilitaire qui donne à ta place les options de compilation. Exemple :

            gcc -o test test_sdl.c `sdl-config --libs --cflags`


            Bref, c'est tout simple, beaucoup plus que sous Windows à ce qu'il me semble.
            • Partager sur Facebook
            • Partager sur Twitter
              28 avril 2006 à 19:36:02

              Citation : louisclem

              juste que avec un IDE on se laisse plus guider

              Il y a des IDE sous Linux aussi, genre Code::Blocks qui est multiplateforme.
              Si tu utilise KDE tu as Kdevelop qui est bien intégré à l'environnement KDE.
              Sous Gnome aussi tu as un IDE en GTK mais je ne me souviens jamais de son nom.
              • Partager sur Facebook
              • Partager sur Twitter
                28 avril 2006 à 21:48:43

                ok merci pour ces petite info extrement utile. ^^
                comme j'ai l'habitude de programmer que sous Windows, j'ai pris également l'habitude de travailler avec plusieurs fichiers source.

                bluestorm a montré pour compiler quand on dispose que d'un seul fichier source.
                mais comment fait-on par exemple dans le cas du TP de Sokoban :euh:
                • Partager sur Facebook
                • Partager sur Twitter
                  28 avril 2006 à 22:14:06

                  Ben, l'utilitaire sdl-config pour le compilateur fonctionne quel que soit le nombre de fichiers sources.

                  Comment compiler plusieurs sources ?
                  Mettons que j'aie un fichier main.c et un fichier fonctions.c
                  gcc main.c fichier.c -o resultat

                  Pas trop dur :p

                  Pour la SDL donc :
                  gcc main.c fichier.c -o resultat `sdl-config --libs --cflags`


                  On peut au lieu d'énumérer les fichiers .c utiliser une wilcard : *.c désigne l'ensemble des fichiers du dossier terminant par .c :
                  gcc *.c -o resultat `sdl-config --libs --cflags`

                  (attention, si ya des fichiers .c qui ne sont pas sensés être inclus dans la compilation, ça va foirer)

                  Si on utilise la libriaire SDL_image, il faut rajouter une option de compilation : -lSDL_image (c'est un L au début, pour dire "lier avec la librairie blabla").

                  Par ailleurs pour Sokoban, j'ai écrit un script de compilation, pour ne pas retaper la ligne à chaque fois : compile.sh :
                  #!/bin/sh
                  gcc -o executable editeur.c fichiers.c jeu.c main.c `sdl-config --libs --cflags` -lSDL_image &&
                  echo compilation effectuee !


                  Tu l'enregistres dans le répertoire ou il y a le code, et pour l'executer : "sh compile.sh"
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 avril 2006 à 23:33:33

                    le script c'est un peu comme un makefile ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 avril 2006 à 12:43:46

                      Dans son effet oui, mais contrairement à un Makefile, le script est interprété par le shell alors que dans l'autre cas c'est l'outil make qui se charge du boulot.

                      Le script est exécutable, alors qu'un Makefile est un simple fichier de texte. L'avantage de make est qu'il gère les dépendances, même très complexes alors qu'un script permet d'automatiser beaucoup de choses, à priori n'aillant rien à voir avec la programmation.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 avril 2006 à 14:05:24

                        nan parce que je sais faire des Makefiles mais c'est un peu long a faire quand on a beaucoup de fichier, alors si c'est ca je passe au script :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 avril 2006 à 21:17:23

                          Tu as des logiciels (voir des IDE) qui s'occupent de créer les Makefile.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            30 avril 2006 à 3:00:39

                            oui mais j'ai lu qu'il respecter pas "la norme". je sais qu'il n'y a pas de standard pour les makefile mais il se peut que ca ne marche pas partout :(
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 mai 2006 à 7:34:08

                              Moi, je n'utilise pas de Makefile parce que je ne connais pas bien, et surtout je ne comprend pas le fonctionnement de la compilation quand je lis un makefile (enfin vaguement, mais ça prend des heures parce que c'est pas linéaire et tout). Donc je préfère me faire des scripts; ici il prend une ligne de gcc, mais parfois pour gérer les dépendances en ocaml par exemple j'ai 5 ou 6 lignes, mais ça ne gêne pas, tout est dans le script :)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Le Site du Zéro pour 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