news
Rentrée fondamentaux :
3/2/2025
Rentrée spécialisation :
18/11/2024
Postuler → X logo

Démystifier les étapes de compilation en C

Démystifier les étapes de compilation en C

En tant que débutant en programmation ou en informatique, vous avez probablement rencontré des termes techniques comme « compilation ». Dans cet article, nous allons explorer ce qu’est la compilation, pourquoi elle est nécessaire et quelles sont les étapes pour compiler un programme en langage C.

Qu'est-ce que la compilation de code ?

En tant que programmeur, on peut utiliser des langages comme le C ou le C++ pour développer des fonctionnalités à bas niveau (low level programming). Ces langages sont conçus pour être compréhensibles par les humains, mais pas par les machines. Écrire du code que l'ordinateur ne peut pas interpréter serait inutile. Pour que la machine comprenne le code écrit dans ces langages, il doit être converti dans un format compréhensible par elle. Cette conversion est appelée compilation.

En résumé, la compilation est un processus qui permet de rendre le code « exécutable » par la machine.

Quelles sont les étapes de la compilation d'un programme C ?

Le langage C est un langage compilé, ce qui signifie qu'un programme écrit en C doit passer par un compilateur pour devenir exécutable. Il existe plusieurs compilateurs pour le C, mais nous allons utiliser GCC.

GCC (GNU Compiler Collection) est un outil essentiel de la chaîne GNU et le compilateur standard pour de nombreux projets GNU et Linux, y compris le noyau Linux (source : Wikipédia).

PS : Nous allons réaliser un tutoriel simple avec un programme C basique appelé my_prog.c.

Pour compiler un programme en C, il doit passer par quatre étapes essentielles :

Ceci est le code de notre programme (simple exemple)

1- Preprocessing :

  • Lors de cette étape, le préprocesseur supprime les commentaires du code source et les remplace par des espaces vides. Il ajoute également le contenu des fichiers d'en-tête directement dans le fichier source. Le résultat obtenu est ensuite transmis à l'étape de compilation. Pour obtenir le code prétraité, on utilise la commande suivante :

Le résultat sera un fichier portant le même nom que notre programme, avec l'extension .i.

2- Compilation :

  • À cette étape, le compilateur prend la sortie du préprocesseur et génère du code assembleur. Pour obtenir le code assembleur, on exécute la commande suivante :

Le résultat sera un fichier portant le même nom, mais avec l'extension .s.

3- Assembling :

  • L'assembleur convertit le code assembleur en code machine, une série d'instructions au niveau matériel compréhensibles par l'ordinateur.

Le résultat sera un fichier portant le même nom, mais avec l'extension .o.

4- Linking :

  • Si votre projet comporte plusieurs modules, chaque compilation génère des fichiers objets distincts. Le rôle du linker est de combiner ces fichiers en un seul fichier exécutable.
  • De plus, si votre code utilise des fonctions provenant d'une bibliothèque externe, le linker les relie à votre programme pour permettre leur utilisation.

L'option -o signifie "output" (sortie), c'est-à-dire qu'elle permet de spécifier le nom du fichier exécutable généré. Par exemple, avec -o, le fichier exécutable peut être nommé my_executable_file.

Chez Holberton, le C est le premier langage que les étudiants apprennent lorsqu'ils rejoignent l'école. Maîtriser ce langage en premier permet par la suite de dompter les autres bien plus facilement !

Vous souhaitez vous former au développement informatique et apprendre le C ? Rejoignez Holberton !

No items found.

Prêt à rejoindre l'aventure ?

Postuler