Skip to content
Snippets Groups Projects
base_3.md 1016 B
Newer Older
orestis.malaspin's avatar
orestis.malaspin committed
% 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)

![Étapes de génération.](figs/compilation.svg){#fig:compilation width=100%}