Jan Vlášek: MAKE
Predchozi (Obsah) Dalsi

7. Něco o překladači

Základní překladač jazyka C v systému UNIX je cc (1) . Dalším překladačem je gcc (2) . Oba dva překladače mají stejné základní přepínače a oba také slouží zároveň jako sestavovací program (linker). Výsledkem překladu je spustitelný soubor s implicitním jménem a.out. Příkladem nechű je příkaz shellu:

$ cc *.c

který přeloží zadané zdrojové texty v jazyce C a sestaví spustitelný soubor implicitního jména. Pokud si nepřejeme, aby výsledný soubor měl implicitní jméno, můžeme kompilátoru vnutit jméno jiné. A to pomocí přepínače -o, za kterým následuje jméno požadovaného výstupu. Např.:

$ cc -o prog a.c b.c

Jména souborů končících .c jsou považována za zdrojový text v jazyce C. Tyto soubory jsou nejprve zpracovány preprocesorem a pak přeloženy. Preprocesor vytvoří soubory s příponou .i, překladač je přeloží do zdrojových textů pro assembler s příponou .s a assembler vytvoří objektové moduly s příponou .o. Výsledné objektové moduly jsou spolu s knihovnami sestaveny do spustitelného souboru a meziprodukty překladu se zruší. Zadáme-li na příkazovém řádku soubory s příponou .i, .s nebo .o, provede se pro ně pouze příslušná část překladu. Příkaz ze zadaných objektových modulů sestaví spustitelný program.

Volby překladače umožňují zastavení překladu v kterémkoli z uvedených kroků:

-P
spustí pouze preprocesor, výsledek ponechá v souborech s příponou .i
-S
provede pouze překlad, ponechá vytvořené soubory .s
-c
nespustí sestavovací program, ponechá vytvořené soubory .o

Další volby zapínají optimalizaci (-O), vkládání informací pro debugger (-g) a podobně.



Predchozi
Converted by Selathco 0.85 on 15.06.1999 11:08
Dalsi