Úvod

Normy

Nestandardizovaná rozšíření

Překlad

Přepínače

gcc -std=c99 -pedantic -Wall -o vystup vstup.c
gcc -std=c99 -Wall -Wextra -Werror

Nástroje

Překlad po částech

  1. Prepocessing
    • gcc -E hello.c > hello.i
    • rozvinutí maker, expanze #include, odstranění poznámek
  2. Kompilace
    • gcc -S hello.i
    • syntaktická kontrola kódu, typicky chybová hlášení a varování
    • překlad do assembleru
    • vzniká soubor *.s
  3. Sestavení
    • as hello.s -o hello.o
    • assembly do strojového kódu
    • zatím ještě relativní adresy funkcí apod.
  4. Linkování
    • gcc hello.o
    • nahrazení relativních adres absolutními
    • odstranění přebytečných textů apod.
    • objevují se chyby linkování (např. chybějící slíbená implementace)
    • získáme spustitelný program