TP0: Edition, compilation et exécution de votre premier programme en C

TOUS les TPs de INF104 vont s’appuyer sur trois outils principaux:

  1. Un environnement d’exécution de commandes
  2. Un éditeur de texte spécialisé (coloration syntaxique, indentation automatique…)
  3. Un outil de compilation

Nous avons choisi de vous faire manipuler les outils de base les plus couramment utilisés dans le développement de programmes C: le terminal pour l’exécution de commandes, gcc comme outil de compilation, et VSCode pour l’édition de code C (Emacs et Vi sont en réalité plus populaires, mais ils sont plus difficiles à utiliser dans un premier temps).

La ligne de commande pour la programmation c

L’utilisation de cet outil sera plus généralement illustré lors de la deuxième partie du TP0. Nous commençons ici par l’utilisation de cet outil pour :

  1. lancer l’environnement de développement (pour éditer le code)
  2. exécuter l’outil de compilation du code C, afin de traduire le langage de haut niveau (C dans notre cas) en langage machine.
  3. lancer l’exécution des programmes que vous allez obtenir après exécution de l’outil de compilation

Avant de compiler un programme, nous allons d’abord devoir … l’écrire! Nous allons pour cela utiliser un éditeur de texte dédié à la programmation.

L’éditeur de texte spécialisé

Nous avons choisi de vous faire utiliser Visual Studio Code. Pour le lancer :

  1. ouvrez l’environnement d’exécution de commandes, le programme s’appelle « Terminal »
  2. tapez la commande dans le Terminal (sans le $ qui indique habituellement qu’on tape une commande dans le terminal):
$ code &

Nous avons préparé une archive avec les différents répertoires des TPs que vous allez faire. Vous avez déjà téléchargé cette archive, et si de n’est pas le cas faite le (instructions ici) ! (attention, par défaut, votre navigateur web sauvegardera cette archive dans le répertoire « Downloads » ou « Téléchargement »).

Pour importer cette archive dans VSCode, cliquez sur « Fichiers–>Ouvrir un répertoire », puis sélectionnez le répertoire TP_INF104

Dans le répertoire TP_INF104, se trouve un répertoire TP0/part1_helloworld/material/ qui contient un fichier first_prog.c. Ouvrez ce fichier, vous constaterez que les mots clés du langage C sont de la même couleur afin de faciliter leur identification dans le code.

Nous vous conseillons de toujours utiliser VSCode dans cette configuration pour la suite des TP de INF104.

L’outil de compilation

Maintenant que vous avez ouvert le programme, et que vous avez pu constater que c’est du texte (et donc un format non-exécutable par la machine) vous allez devoir le compiler avant de l’exécuter.

Pour la compilation, allez dans l’environnement d’exécution de commandes. Déplacez vous dans le répertoire TP0/part1_helloworld contenant le fichier source first_prog.c

puis exécutez:

$ cd <chemin_vers_TP_INF104>/TP0/part1_helloworld/material

Remplacez <chemin_vers_TP_INF104> par le chemin vers votre répertoire TP_INF104. Par exemple, TP0A/TP_INF104. Par défaut, votre répertoire TP_INF104 se trouve dans Downloads/TP_INF104 ou Téléchargement/TP_INF104.

Pour vérifier que vous avez réussi, exécutez la commande ls et si le nom « first_prog.c » du répertoire TP_INF104 s’affiche dans le terminal, c’est bon. Sinon, demandez de l’aide à un encadrant du TP.

Nous reviendrons sur ces notions dans la deuxième partie du TP.

Ensuite, exécutez:

$ gcc first_prog.c -o first_prog

Après exécution de cette commande, vous devriez avoir un nouveau fichier appelé first_prog (utiliser la commande ls pour constater son existence dans la ligne de commande). Ce fichier est un executable, que vous allez lancer en suivant les instructions données ci-dessous.

NOTE: gcc est l’outil de compilation que nous allons utiliser dans tous les TPs. Son fonctionnement sera expliqué dans les cours sur la chaine de production. Nous indiquons simplement ici le rôle de l’option -o first_prog: elle indique à gcc que le fichier produit devra s’appeler first_prog.

Exécution de votre programme

Pour exécuter votre programme, allez dans la ligne de commandes et tapez:

$ ./first_prog

Un message de bienvenue devrait s’afficher à l’écran.

NOTE: pourquoi peut-on appeler l’outil gcc avec la commande $gcc, alors qu’il faut appeler notre programme avec la commande $./first_prog ? A quoi sert ce « ./ »?

La raisons est simple: pour exécuter un programme en ligne de commande, il faut donner le chemin de ce programme sur le disque. C’est ce que nous faisons avec ./first_prog en référençant un chemin relatif grâce à « ./ ». Alors pourquoi on ne donne pas le chemin vers gcc? gcc est un outil couramment utilisé, et il a été placé dans un répertoire que l’environnement d’exécution des commandes va aller consulter pour le localiser.

L’ensemble des chemins dans lesquels l’environnement de commande cherche les binaires que vous lancez est stocké dans la variable d’environnement: PATH. Pour connaître la liste des répertoire dans lesquels l’environnement en ligne de commandes cherche les binaires, tapez la commande suivante (sur une seule ligne). Faites attention au symbole « $ » qui permet de lire la variable PATH :

$ echo $PATH

Vous voyez s’afficher une liste de chemins, séparés par « : ». Lorsque vous lancez gcc, l’environnement d’exécution des commande cherche dans chaque chemin, l’un après l’autre, s’il contient un fichier appelé gcc. Dès qu’il en trouve un, il l’exécute.

Fin de la partie 1 du TP0, passez à la partie 2