% Programmation séquentielle en C % Base III - Inspirés des slides de F. Glück % 2 octobre 2019 # Génération d'un exécutable (1/N) ```bash gcc proc.c -o prog ``` 1. **Précompilation: ** `gcc` appelle `cpp`, le préprocesseur qui effectue de la substitution de texte (`#define`, `#include`, macros, ...) et génère le code `C` à compiler, portant l'extension `.i` (`prog.i`). 2. **Compilation assembleur: ** `gcc` compile le code C en code assembleur, portant l'extension `.s` (`prog.s`). 3. **Compilation code objet: ** `gcc` appelle `as`, l'assembleur, qui compile le code assembleur en code machine (code objet) portant l'extension `.o` (`prog.o`). 4. **Édition des liens: ** `gcc` appelle `ld`, l'éditeur de liens, qui lie le code objet avec les librairies et d'autres codes objet pour produire l'exécutable final (`prog`). Les différents codes intermédiaires sont effacés. # Génération d'un exécutable (2/N) {#fig:compilation width=100%}