Programmation en c sous linux

Bonjour,
je suis totalement debutant en linux, je veux commencer la programmation c mais le bemol c'est ke je ne sais pas installer un compilateur gcc ni meme l'editeur vim comment dois proceder pour installer ces outils pas à pas jusqu'à l'écriture du premier programme pour tester.
Merci d'avance pour votre aide.
Configuration: Windows Vista
Internet Explorer 7.0

10 réponses

  1. Bjr,

    bon on y va tout doux :

    D'abord il te faut avoir gcc et éventuellement make
    Donc pour installer gcc, puisque tu es sous Mandriva il te faut utiliser le programme urpmi qui fait les installations des paquets en vérifiant que les dépendances sont respectées.

    si quand tu tapes :
    gcc

    - tu as qqchose comme réponse "command not found" c'est que gcc n'est pas installé
    - tu as "gcc: pas de fichier à l'entrée" c'est que gcc est installé mais que tu n'as pas donné quel fichier tu voulais compiler.

    >>si je comprends bien je dois d'abord ecrire mon programme dans un éditeur de texte et ensuite l'enregistrer sous hello.c

    Oui c'est exactement çà !

    >>puis j'utilise ma console avec cat pour creer mon repertoire.
    NON rien à voir , la commande cat sert uniquement à visualier le contenu d'un fichier
    Donc ici cat hello.c ne fait qu'afficher le contenu du fichier que tu as entré avec ton éditeur de texte.

    Tu n'as aucun répertoire à créer dans un premier temps.
    Dans le répertoire dans lequel tu as hello.c
    si tu fais :
    gcc -o hello hello.c

    le compilateur gcc créera le fichier hello
    tu pourras vérifier en tapant la commande ll, comme çà

    ll
    total 24
    -rwxr-xr-x 1 dmganges dmganges 6663 2008-11-02 05:25 hello*
    -rw-r--r-- 1 dmganges dmganges 58 2007-03-05 10:26 hello.c

    Pour pouvoir lancer le fichier hello, il te faudra modifier ses droits avec la commande chmod, de cette façon :

    chmod u+x hello

    Ensuite tu pourra faire :
    ./hello

    et là VICTOIRE il s'exécutera.

    Tiens regarde ici un peu les commandes :
    http://jp.barralis.com/linux-man/
    1. Contributeur
      Très bonne explication, très complète. +1
    2. Modérateur
      Salut,

      tu pourras vérifier en tapant la commande ll, comme çà
      Il me semble que ll n'est qu'un alias pour la commande ls avec l'option -l
      ls -l
      --
      106485010510997108
    3. Modérateur
      Re,

      -rwxr-xr-x 1 dmganges dmganges 6663 2008-11-02 05:25 hello*
      -rw-r--r-- 1 dmganges dmganges 58 2007-03-05 10:26 hello.c

      Pour pouvoir lancer le fichier hello, il te faudra modifier ses droits avec la commande chmod, de cette façon :

      chmod u+x hello


      Selon le résultat du ll on voit bien que hello a déjà les droits d'exécution positionnnés après la compilation, ce qui rends superflue la commande chmod.
  2. Bjr,

    dans une console sous root tu tapes :

    urpmi gcc

    urpmi make

    Il te demandera d'insérer le CD/DVD de Mandriva

    # cat hello.c
    #include <stdio.h>
    main()
    {
    printf("Hello, Doudou\n");
    }

    gcc -o hello hello.c

    # ./hello
    Hello, Doudou

    make te sera utile un peu plus tard...

    Bon dimanche avec gcc :)
    1. merci dmganges si je comprends bien je dois d'abord ecrire mon programme dans un éditeur de texte et ensuite l'enregistrer sous hello.c puis j'utilise ma console avec cat pour creer mon repertoire.
      1. Contributeur
        Ce n'était qu'un exemble. Mais en théorie, tu dois créer ton fichier (je te conseille Vi, mon préféré) de la manière suivante.

        vi tonfichier.c

        En te plaçant dans le dossier ou tu désires le mettre, ou alors faire, à partir de n'importe quel dossier vi /home/toi/fichier.c (on appelle ça le chemin absolu)

        Ecris le, sauvegarde le, et fais :

        gcc tonfichier.c

        Ce qui donnera un a.out qui sera le fichier binaire. Tu n'auras qu'à le renommer =) (Tu le renommeras ensuite =)

        Sur mandriva, gcc est installé de base ;-)
    2. Pardon Kharec nos réponses se sont croisées, et MERCI pour ton +1

      Merci pour la correction lami20j effectivement mon "ll" est un alias depuis le temps qu'il est en place j'avais oublié la vraie commande :
      ls -l

      Par contre mon ll est le résultat après le chmod que j'ai dû faire car après la compil le résultat n'est pas exécutable. Je devrais avoir honte car en fait, j'ai fait :
      chmod +x hello d'où le 755.

      Bon pythagore1, tu vois tout le monde languis que tu nous dises que ton premier programme en C fonctionne !!!

      VITE qu'on fasse +1 sur le compteur des accros au C !!!
      1. Modérateur
        Salut,

        ll est le résultat après le chmod
        Ok ;-))

        Toutefois, si ça ne te dérange pas, veux tu m'afficher le résultat de
        gcc -o hello1 hello.c && ls -l hello1 
        ?
        Merci.
        1. Autant pour moi, comme on dit :

          -rwxr-xr-x 1 dmganges dmganges 6663 2008-11-03 12:49 hello1

          et SANS chmod

          A ces neurones qui n'en font qu'a leur tête
          :)))
          MERCI
          1. Modérateur
            Re,

            Ce que t'as dit, qu'il faut rendre le fichier exécutable, n'est pas faux, au contraire.
            D'ailleurs mieux vaut le faire deux fois que pas de tout ;-)

            Je suppose que tu as regardé les droits seulement après l'exécution de chmod tout en sachant qu'un fichier pour être lancer il faut les droits necessaires.
            Je suis un peu plus curieux et je regarde aussi avant. Ca me permets de comprendre certains comportements des logiciels.

            Ce n'est pas une erreur, d'ailleurs j'ai dit que dans ce cas c'est superflue mais je n'ai pas dit que c'est incorrecte ;-)

            Bonne continuation.
            ;-)))
        2. C'est plus virulent que cela,
          en fait je suis allé dans un vieux répertoire pour puiser un exemple pour notre amis, et j'ai dit une ânerie (SI SI j'y tiens) gcc génère un EXECUTABLE

          vois la date du .c

          @+
          1. Modérateur
            Re,

            Ce que t'as dit, qu'il faut rendre le fichier exécutable, n'est pas faux, au contraire.
            Ici je parlais dans le cas général ;-)
            Pour le gcc je le sais ;-)), c'est pour ça que je suis intervenu ;-))