Detta är en liten kortare beskrivning av kompileringsprocessen i C.

* Förbearbetning – I det här steget så byts alla direktiv för preprocessorn ut som är angivna i källkodsfilen (.c) mot den kod som finns i dom aktuella filerna. Som exempel så ersätter den kod från dom filer som angetts i #include-direktivet. En fil skapas som är i textformat och den får filändelsen .i.

* Översättning – I det här steget så översätter kompilatorn högnivåinstruktionerna i filen .i till lågnivåinstruktioner i form av Assembly. En ny fil skapas som är i textformat och den får filändelsen .s.

* Assemblering – Assemblern översätter textinstruktionerna från filen .s till maskinkod. Filen är i binärt format och den får filändelsen .o

* Länkning – Länkaren kombinerar en eller flera binära objektfiler (.o) och genererar en körbar fil. Den fil som skapas är i binärt format. I windows har den filändelsen .exe.

Egentligen så handlar kompileringen om dom första tre stegen. Den arbetar med en källkodsfil och genererar en objektfil. I den här processen så kollas sånt som syntaxfel, som missade semikolon etc. Saknas detta så rapporterar kompilatorn detta och avbryter kompileringen.

Länkaren arbetar med flera objektfiler och genererar en körbar fil. Om länkaren t.ex. hittar en funktion med samma namn i flera filer så kommer den att rapportera ett fel och den körbara filen skapas inte.

Normalt under processen så skapas temporära filer som sen automatiskt tas bort. Man kan tala om för kompilatorn att man vill behålla dessa med -save-temps.

1
gcc fil.c -save-temps -o fil