Sdílet prostřednictvím


CL vyvolává linker

CL po kompilaci automaticky vyvolá linker, pokud se nepoužije možnost /c. CL předá linkeru názvy .obj souborů vytvořených při kompilaci a názvy všech ostatních souborů zadaných na příkazovém řádku. Linker používá možnosti uvedené v proměnné prostředí LINK. Pomocí možnosti /link můžete zadat možnosti linkeru na příkazovém řádku CL. Možnosti, které následují za možností /link, přepíší ty v proměnné prostředí LINK. Možnosti v následující tabulce potlačí propojení.

Možnost Popis
/c Kompilace bez propojení
/E, /EP, /P Předběžné zpracování bez kompilace nebo propojení
/Zg Generování prototypů funkcí
/Zs Kontrola syntaxe

Další podrobnosti o propojení najdete v tématu Možnosti linkeru MSVC.

Příklad

Předpokládejme, že kompilujete tři zdrojové soubory jazyka C: MAIN.c, MOD1.c a MOD2.c. Každý soubor obsahuje volání funkce definované v jiném souboru:

  • FUNKCE MAIN.c volá funkci func1 v MOD1.c a funkci func2 v MOD2.c.

  • MOD1.c volá standardní funkce printf_s knihovny a scanf_s.

  • MOD2.c volá grafické funkce pojmenované myline a mycircle, které jsou definovány v knihovně s názvem MYGRAPH.lib.

Chcete-li sestavit tento program, zkompilujte následující příkazový řádek:

CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib

Cl nejprve zkompiluje zdrojové soubory jazyka C a vytvoří soubory objektů MAIN.obj, MOD1.obj a MOD2.obj. Kompilátor umístí název standardní knihovny do každého souboru .obj. Další podrobnosti najdete v tématu Použití knihovny za běhu.

CL předá názvy .obj souborů spolu s názvem MYGRAPH.lib linkeru. Linker vyřeší externí odkazy následujícím způsobem:

  1. V MAIN.obj se odkaz na tento problém func1 vyřeší pomocí definice v MOD1.obj; odkaz na tento problém func2 se vyřeší pomocí definice v MOD2.obj.

  2. V MOD1.obj jsou odkazy na printf_s a scanf_s jsou vyřešeny pomocí definic v knihovně, kterou linker najde v MOD1.obj.

  3. V MOD2.obj se odkazy na myline a mycircle přeloží pomocí definic v knihovně MYGRAPH.lib.

Viz také

Parametry kompilátoru MSVC
Nastavení možností kompilátoru