Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème pour compiler le C

besion d'aide sous debian !!!!

    19 octobre 2007 à 20:28:14

    Bonjour tous les zeros !!

    Bon voila récement j'ai installer debian sur mon secobnd pc et la j'ai un problème pour faire de la prog en C:

    quand je tappe:
    gedit main.c


    ça on m'as dit que c'était pour editer le main.c
    Il me donne ce message:
    cannot open display: (null)


    Bon ensuite pour encore dire que je suis nul avec linux j'ai ce message quand je tappe gcc main.c -o test:
    gcc main.c -o test
    -bash: gcc: cannot command not found



    Voila je compren a peu prés le problème sauf que je ne sais pas comment le résoudre ^^ alors un petit coup de main n'est pas de refus.

    merci d'avance ^^ !

    PS: Je fais toutes ces manip en console (celle suand on fait ctrl+alt+F1)
    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2007 à 20:33:46

      Si tu fais en console, normal que tu ne puisses pas utiliser gedit, qui est un éditeur en mode graphique. Il existe d'autres éditeurs, eux faits pour la console, d'après moi beaucoup plus pratique. Par exemple, on peut citer nano ou vim (et si on te conseille emacs, n'écoute pas).

      Pour gcc, c'est car le compilateur C n'est pas fourni en standard. Pour l'installer, il faut taper cela :
      sudo apt-get install build-essential
      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2007 à 20:35:03

        Pour la première erreur, c'est tout con : t'es en console, et gedit est un éditeur de texte graphique, alors forcément il arrive pas à créer de fenêtre, du coup il te sort une exception au lancement.
        Pour le régler, soit tu travaille dans une console virtuelle (en mode graphique donc), soit tu utilise un éditeur en console. Typiquement vi ou emacs, mais aussi vim, nano, ed... (pour un habitué de gedit, nano devrait pas trop te dépayser).

        Pour la deuxième erreur, et bien bash (ton interpréteur de commandes), ne trouve pas gcc, ça signifie le plus souvent qu'il n'est pas installé (ça peut aussi vouloir dire qu'il n'est pas installé dans le bon répertoire).
        Pour régler ça : 'aptitude install gcc'

        EDIT : Ah ouais, c'est build-essential le paquet Debian, j'avais oublié, en même temps sous Gentoo, il y a toujours gcc :-°
        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          19 octobre 2007 à 20:38:36

          Mieux que ca, tape
          $ su
          Password:
          # aptitude install build-essential

          On ne le dira jamais suffisamment:
          UTILISEZ APTITUDE !!!!
          </span></span></span>
          • Partager sur Facebook
          • Partager sur Twitter
            19 octobre 2007 à 22:08:11

            Ben moi j'trouve que aptitude pux à me builder 15000 indexs sans que je sache à quoi ils servent, donc j'utilise apt-get.
            • Partager sur Facebook
            • Partager sur Twitter
              19 octobre 2007 à 22:19:47

              utilise nano au lieu de gEdit qui est un outil graphique et non console ;)
              • Partager sur Facebook
              • Partager sur Twitter
                19 octobre 2007 à 22:29:28

                Bon tout d'abord merci a tous pour vos reponse aussi rapide et précise les unes que les autres !!!

                Pour gedit j'avais trouvé un peu aprés avoir posté, en le tappant dans un terminal graphique mais pour ce qui est du compilo je viens de me remarqué que j'ai oublié de vous préciser un detail et pas des moindre: l'ordi qui a debian n'as pas internet !!!

                Donc je voulais savoir si on pouvais telecharger nano et le compilo a partir de mon windows et le mettre sur une clé USB pour enfin le mettre sur mon petit debian ^^ .

                Merci d'avance !
                • Partager sur Facebook
                • Partager sur Twitter
                  19 octobre 2007 à 22:34:46

                  Bien sur : utilise ce site pour trouver tes paquets :
                  http://www.debian.org/distrib/packages
                  Cependant, tu devra aussi trouver les dépendances des paquets, et les dépendances des dépendances...
                  Cherche build-essential.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 octobre 2007 à 22:38:02

                    Citation : delroth

                    Ben moi j'trouve que aptitude pux à me builder 15000 indexs sans que je sache à quoi ils servent, donc j'utilise apt-get.


                    Fais un tour sur ce site et dis moi ce que tu en penses...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 octobre 2007 à 23:24:29

                      Ok, tu tiens à ce que je démonte tous tes pseudo-arguments indiqués sur ce site ? Pas de problème.

                      1) L'opération d'update

                      Il nous montre donc sur ses deux captures d'écran que aptitude fait du boulot supplémentaire après l'update des listes de paquets. Soit, c'est peut-être du bon boulot. Mais n'est-il pas superflu de rebuilder plein d'indexes quand cette opération sera refaite exactement à la prochaine installation / upgrade de paquet ? Car c'est un peu ce qu'on voit sur les captures d'écran : on retrouve les mêmes étapes à l'update et l'install / upgrade. Sur ce point, apt-get évite un travail inutile. Quand on est comme moi avec une petite config, ça se sent.

                      2) L'installation de paquets

                      Hum, je veux installer perl et pas la doc, je fais comment avec aptitude ? Ah ben merde dis donc, je peux pas. C'est ballot, hein ? Ah si, il y a une solution : il faut installer perl, puis désinstaller perl-doc. Très pratique, tout ça. En plus, on peut remarquer pleins de constructions d'index supplémentaires qui ralentissent l'opération. Ces constructions d'indexes seront reproduites à l'identique à la fin de l'installation : encore du travail inutile.

                      3) La désinstallation
                      4) La dist-upgrade

                      Je réunis ces deux points en un, car ce n'est en fait qu'un seul argument. Cet argument est donc le fait que aptitude va automatiquement supprimer les dépendances non utilisées d'un paquet. Tout d'abord, c'est pas car je désinstalle mysql-client que j'ai plus besoin de perl. Pourtant, là, il se gène pas pour le virer sans scrupules car plus aucun paquet n'est sensé l'utiliser. De plus, cet argument est totalement dépassé, sachant que "apt-get autoremove" existe depuis deux ou trois versions de APT et propose le même service.

                      5) L'interface graphique

                      Et la philosophie unix qui dit qu'un logicile doit se prêter à une seule tâche, mais bien ? Depuis quand un logiciel est obligé de proposer une interface graphique en même temps que des services de gestionnaire de paquet ? Encore une fois, c'est un argument bidon, c'est comme dire que on a pas d'équivalent à "aptitude moo" avec apt-get.

                      _________________________________________________________________________________

                      Passons maintenant à mes principaux arguments contre aptitude (ou pour apt-get) :

                      1) Le sélecteur multiple de paquets

                      Imaginons qu'un jour, vous avez à installer ces paquets : wesnoth wesnoth-data wesnoth-music wesnoth-campaign-server wesnoth-server. C'est long à recopier à la main, hein ? Et ouais, aptitude connait pas le *, c'est con pour un logiciel sensé simplifier les choses.
                      # apt-get install wesnoth-*
                      .....
                      Note, sélectionne wesnoth-httt pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-devel pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-data pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-server pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-trow pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-utbs pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-tsg pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-ttb pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-ei pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-editor pour l'expression rationnelle « wesnoth-* »
                      Note, sélectionne wesnoth-music pour l'expression rationnelle « wesnoth-* »


                      2) La rapidité

                      Certains dirons « olol moi josepf, j'ai un super quad-octo-déca core intel à 5,3GHz, donc c'est rapide chez moi ». J'utilise actuellement un Pentium 3 à 1.1GHz avec 640mo de RAM (merci Artmoonik), et chez moi, la différence est plus que perceptible.
                      delroth-kde4:~> sudo time apt-get install python-gd                       11:16
                      ...
                      0:38.58elapsed
                      _______________________________________________________________________________
                      delroth-kde4:~> sudo time aptitude install python-gd                      11:18
                      ...
                      1:21.04elapsed

                      Plus du double, bravo aptitude.

                      3) Les paquets sources

                      Oh tiens, tout d'un coup, j'ai envie de récupérer les sources de la dernière version de python en date (2.5.1 pour les incultes). Ah mais comment vais-je pouvoir faire, aptitude ne semble rien proposer pour cela...
                      Oh mais oui, apt-get source ! Ah mais il me manque des paquets pour le compiler... Ah tiens, apt-get build-dep. Magique, non ?

                      ________________________________________________________________________________

                      J'arrête là, je pense que tu as compris la leçon et que tu arrêteras de balancer des liens que tu dois à mon avis à peine comprendre, et que tu arrêteras de troller inutilement et sans arguments (si on compte pas ceux des autres).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 octobre 2007 à 23:33:35

                        Citation : delroth

                        J'arrête là, je pense que tu as compris la leçon et que tu arrêteras de balancer des liens que tu dois à mon avis à peine comprendre, et que tu arrêteras de troller inutilement et sans arguments (si on compte pas ceux des autres).


                        C'est qui qui balence des trolls:

                        Citation : delroth

                        Ben moi j'trouve que aptitude pux à me builder 15000 indexs sans que je sache à quoi ils servent, donc j'utilise apt-get.


                        ??

                        Personnelement je prefere perdre 2mn de ma vie en train d'attendre que aptitude finisse ces indexs.
                        Ce n'est pas en étant agressif que tu me convaincras...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 octobre 2007 à 23:36:58

                          +1 delroth, il faut être rationnel de temps en temps. :-°

                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 octobre 2007 à 0:16:28

                            J'pense que si tu regardes bien et objectivement, _tu_ a lancé le troll à l'origine, avec ton :

                            Citation : dokteurping

                            On ne le dira jamais suffisamment:

                            UTILISEZ APTITUDE !!!!

                            </span></span></span>

                            C'est ce qu'on appelle communément un troll, c'est très moche, encore plus quand on ne veut pas reconnaître qu'on a tord et qu'on se cache derrière des "olol t agressif" pour ne pas avouer qu'on a sorti du bidon sans le lire.

                            J'attend une vraie réponse à mes arguments de ta part.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              20 octobre 2007 à 7:37:33

                              Merci a tous (et pas la peine de s'emboruiller pour èa) !!

                              tatrefthekiller, j'ai jeté un oeil sur le site de debian pour chercher build-essential mais je ne le trouve que dans la petite liste de tous les paquests en bas mais je trouve pas le lien pour le telecharger ^^ . Il est dans quelle catégorie stp ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                20 octobre 2007 à 10:28:40

                                http://packages.debian.org/etch/build-essential

                                Les liens de téléchargement par architecture se trouvent en bas de page ;)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  20 octobre 2007 à 13:53:51

                                  heu, pour compiler un fichier source en C, on n'utilise pas par hasard la commande : g++ -c main.c -o nomdesortie
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    20 octobre 2007 à 14:12:13

                                    g++ est le compilateur GNU pour le ... C++ ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      20 octobre 2007 à 14:41:03

                                      salut tout le monde d'abord merci de vous mettre a autant sur mon prob mais c'est pas finit ^^ . Voila je peux grace a vous compiler mais voila je n'arrive pas a exécuter ce que j'obtient (test dans ce cas) voila un screen pour voir licone du prog et voici son code:

                                      1. #include <stdio.h>
                                      2. #include <stdlib.h>
                                      3. long age=0;
                                      4. int main (void)
                                      5. {
                                      6.         printf("bonjour, quel age as tu ?\n");
                                      7.         scanf("%1d", &age);
                                      8.         printf("C'est bien tu as %1d ans !!!\n\n", age);
                                      9.         return 0;
                                      10. }


                                      Image utilisateur

                                      Je ne sais pas si c'est un problème parceque mon code n'est pas conforme ou que j'ai inclus des choses propre a windows ous i je doit encore installer quelque chose.

                                      Vous allez vous dire:"mais quel boulé !!!" et vous n'avez pas tort mais faut me pardonner j'ai eu autre chose que windows dans ma vie ^^ .
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        20 octobre 2007 à 15:46:52

                                        Salut,

                                        Faut que tu lance ton programme depuis un terminal.
                                        Par exemple, si ton programme est situé à ~/programmes/test :
                                        cd ~/programmes
                                        ./test


                                        Ou sinon en faisant un clic droit sur ton exécutable depuis ton gestionnaire de fichiers, tu as peut-être une option «Éxécuter depuis un terminal» ;)
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          20 octobre 2007 à 15:53:30

                                          Aucun des deux ne marchent ...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            20 octobre 2007 à 16:01:31

                                            Euh...

                                            Citation : Source

                                            1.
                                            #include <stdio.h>
                                            2.
                                            #include <stdlib.h>
                                            3.

                                            4.
                                            long age=0;
                                            5.

                                            6.
                                            int main (void)
                                            7.
                                            {
                                            8.
                                            printf("bonjour, quel age as tu ?\n");
                                            9.
                                            scanf("%1d", &age);
                                            10.
                                            printf("C'est bien tu as %1d ans !!!\n\n", age);
                                            11.

                                            12.

                                            13.
                                            return 0;
                                            14.
                                            }



                                            C'est bien un 1 que je vois ? o_O
                                            Normalement c'est un l : %ld :-°

                                            ALors, je vais chez l'ophtalmo ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              20 octobre 2007 à 16:20:11

                                              C'est bien un un mais sur windows sa marche avec mais je vais voir si c'est pas a couse de ça que ça ne marche pas ^^ .

                                              edit: négatif, c'est pas ça qui va pas !
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                20 octobre 2007 à 20:53:23

                                                Pour compliler fait plutot
                                                gcc -o test main.c

                                                Enfin perso moi je ne fais pas ça : Je ne donne jms le nom main.c sur un petit programme, car tu ne sais absolument pas de quoi il s'agit.
                                                Et ensuite à mon executable, je donne exactement le meme nom que mon .c
                                                En bref moi je fais plutot
                                                nano JeuDuPlusOuDuMoins.c
                                                gcc -o JeuDuPlusOuDuMoins JeuDuPlusOuDuMoins.c
                                                ./JeuDuPlusOuDuMoins

                                                Voilà là c'est plus clair :D
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  21 octobre 2007 à 10:16:19

                                                  Ok merci je vais testé ça mais je crois que mon problème ne s'arrete pas au programme que je fais car j'ai essaté d'ouvrir plein d'autre executable sur mon pc et a chak fois il ne se passe rien.
                                                  Peut etre qu'il me manque un paquets spécial ou quelque chose d'autre.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    21 octobre 2007 à 11:11:38

                                                    Clique droit > propriété > coche "est executable" ?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      21 octobre 2007 à 13:36:56

                                                      Tu te place dans le répertoire de ton exécutable :
                                                      cd repertoire
                                                      Puis tu rend ton fichier exécutable :
                                                      chmod +x test
                                                      Puis tu l'exécute :
                                                      ./test

                                                      Tu peux aussi le faire en mode graphique comme l'a dit zalexki avec clique droit > propriétés > exécutable
                                                      Ensuite pour exécuter en mode graphique, tu double clique sur test, là il te propose soit de le lancer, ou de l'afficher. Choisi exécuter.

                                                      Là ça devrai aller...
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Anonyme
                                                        21 octobre 2007 à 13:47:04

                                                        Sauf que gcc crée déjà des exécutables ... :-°

                                                        @ gaarnik : les autres programmes que tu n'arrive pas à lancer, où sont-ils situés ? Sur ta partition /home ?
                                                        Dans ce cas, pourrais tu donner le résultat de la commande mount s'il te plaît ? C'est pour vérifier si par hasard ta partition /home n'est pas montée avec le flag noexec ...

                                                        Sinon, quand tu essaie de le lancer dans un terminal ton programme, y'a un message d'erreur ?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          24 octobre 2007 à 11:44:00

                                                          Merci les gars pour votre aide ^^ .

                                                          @ Tuxicomane : Je testerai mount plus tard car en ce moment je réinstalle linux sur mon PC car la premiere fois j'avais oublié les partitions donc j'aurai pas pu r'ajouter windows aprés donc pour le moment a pu rien sur le disque dur ^^ .
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            30 octobre 2007 à 16:07:10

                                                            Citation : daypitoum

                                                            Euh...

                                                            Citation : Source

                                                            1.
                                                            #include <stdio.h>
                                                            2.
                                                            #include <stdlib.h>
                                                            3.

                                                            4.
                                                            long age=0;
                                                            5.

                                                            6.
                                                            int main (void)
                                                            7.
                                                            {
                                                            8.
                                                            printf("bonjour, quel age as tu ?\n");
                                                            9.
                                                            scanf("%1d", &age);
                                                            10.
                                                            printf("C'est bien tu as %1d ans !!!\n\n", age);
                                                            11.

                                                            12.

                                                            13.
                                                            return 0;
                                                            14.
                                                            }



                                                            C'est bien un 1 que je vois ? o_O
                                                            Normalement c'est un l : %ld :-°

                                                            ALors, je vais chez l'ophtalmo ?


                                                            C'est parfaitement juste! Que ce soit pour un scanf() ou un printf(), ca indique a la fonction combien de caracteres elle doit lire/afficher.
                                                            Si tu fais printf("%1i", a); avec a = 100000000, la fonction n'affichera qu'un chiffre....
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            problème pour compiler le C

                                                            × 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