Vyvolání linkeru z prostředí CL
CL automaticky vyvolá po kompilaci, pokud není použit parametr /c propojovacího programu.CL předává obj soubory vytvořené během kompilace názvy a názvy všech souborů, které zadané na příkazovém řádku propojovacího programu.Možnosti uvedené v systémové proměnné odkaz používá propojovací program.Volba/Link určete možnosti propojovacího programu v příkazovém řádku CL.Volba/Link parametry přednost odkaz proměnné prostředí.Možnosti v následující tabulce potlačit propojení.
Možnost |
Popis |
---|---|
/c |
Kompilaci bez propojení |
/ /P E, /EP, |
Předběžně zpracovat bez kompilace a propojování |
/Zg |
Generovat prototypy funkce |
/Zs |
Kontrola syntaxe |
Další informace o propojení naleznete v tématu Možnosti propojovacího programu.
Příklad
Předpokládejme, že jsou kompilace zdrojových souborů tři C: MAIN.c, MOD1.c a MOD2.c.Každý soubor obsahuje volání funkce definovaná v jiný soubor:
MAIN.c volá funkci func1 v MOD1.c a funkce func2 v MOD2.c.
Standardní knihovna funkcí volá MOD1.c printf_s a scanf_s.
Grafické funkce s názvem volá MOD2.c myline a mycircle, které jsou definovány v knihovně s názvem MYGRAPH.lib.
K sestavení tohoto programu, kompilace z příkazového řádku následující příkaz:
CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib
CL první kompiluje zdrojové soubory C a vytvoří objekt soubory MAIN.obj, MOD1.obj a MOD2.obj.Kompilátor vloží standardní knihovny v jednotlivých souborech obj.Další informace naleznete v tématu Knihovna Run-Time použití.
CL názvy souborů obj, spolu s názvem MYGRAPH.lib, předává do propojovacího programu.Propojovací program řeší externí odkazy takto:
V MAIN.obj, odkaz na func1 je vyřešen pomocí definice v MOD1.obj; odkaz na func2 je vyřešen pomocí definice v MOD2.obj.
V MOD1.obj, odkazy na printf_s a scanf_s , jsou vyřešeny pomocí definice propojovacího programu najde knihovny s názvem v MOD1.obj.
V MOD2.obj, odkazy na myline a mycircle , jsou vyřešeny pomocí definice v MYGRAPH.lib.