A fordítás folyamata
A fordítás folyamata¶
A fordítási folyamat sok lépésből is állhat, de 4 olyan lépés van, ahol a folyamatot elkezdeni illetve befejezni lehet. Ez azt jelenti, hogy megfelelő kapcsolóval bármelyik korábbi állapotból bármelyik későbbi állapotot el lehet érni a fordítás során (feltéve, hogy a folyamatot nem akasztja meg valamelyik fázisban bekövetkezett hiba).
Ez a 4 alapvető lépés, amelyeket a továbbiakban részletesen is meg fogunk nézni:
- preprocessing - előfeldolgozás
- compilation- fordítás (assembly nyelvre)
- assembly - fordítás (gépi kódra)
- linking - szerkesztés
A különböző lépések eredménye különböző típusú kimeneteket, fájlokat produkál, de általában a kiterjesztés azért segít abban, hogy eldöntsük, mivel van dolgunk:
file.c
- C source (forrás) fájlfile.h
- C header (fejléc) fájlfile.i
- preprocessed (előfeldolgozott) C fájlfile.s
- assembly source (forrás) fájlfile.o
- object (gép kódú) fájla.out
- linked executable (szerkesztett futtathó) fájl
Már korábban láthattuk az alábbi ábrát, ami bemutatja az egyes lépéseket, illetve azt, hogy mely gcc
kapcsoló visz egyik lépésből a másikba:
Az első fázisnál figyeljünk arra, hogy a preprocesszálás eredménye alapból nem fájlba kerül, csak a standard kimenetre, ezért ha később szükség lenne rá, érdemes fájlba irányítani az eredményt.