Skip to content
Snippets Groups Projects
Commit 93c7bca9 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

started base 3

parent c9b3beaf
No related branches found
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@ HTMLOPTIONS += -t html5
HTMLOPTIONS += -c css/tufte-css/tufte.css
HTMLOPTIONS += --self-contained
all: base_2.pdf base_1.pdf intro.pdf index.html
all: base_3.pdf base_2.pdf base_1.pdf intro.pdf index.html
intro.pdf: intro.md metadata.yaml
pandoc $(PDFOPTIONS) -o $@ $^
......@@ -29,6 +29,9 @@ base_1.pdf: base_1.md metadata.yaml
base_2.pdf: base_2.md metadata.yaml
pandoc $(PDFOPTIONS) -o $@ $^
base_3.pdf: base_3.md metadata.yaml
pandoc $(PDFOPTIONS) -o $@ $^
index.html: index.md
pandoc -s $(OPTIONS) $(HTMLOPTIONS) -o $@ $<
......
% 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%}
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment