Propojení
V projektu C++ se krok propojení provede po kompilaci zdrojového kódu kompilátorem do souborů objektů (*.obj). Linker (link.exe) kombinuje soubory objektů do jednoho spustitelného souboru.
Možnosti linkeru je možné nastavit uvnitř nebo Visual Studio. V Visual Studio můžete získat přístup k možnostem linkeru tak, že kliknete pravým tlačítkem na uzel projektu v Průzkumník řešení a zvolíte Vlastnosti. Zobrazí se stránky vlastností. Zvolte Linker v levém podokně a rozbalte uzel a podívejte se na všechny možnosti.
Syntaxe příkazového řádku linkeru
Při spuštění funkce LINK mimo Visual Studio můžete vstup zadat jedním nebo více způsoby:
Na příkazovém řádku
Použití souborů příkazů
V proměnných prostředí
LINK nejprve zpracuje možnosti zadané v proměnné prostředí LINK a pak možnosti v pořadí, v pořadí, ve kterých jsou zadány na příkazovém řádku a v souborech příkazů. Pokud se možnost opakuje s různými argumenty, má přednost poslední zpracovaný argument.
Možnosti platí pro celé sestavení. U konkrétních vstupních souborů není možné použít žádné možnosti.
Pokud chcete LINK.EXE, použijte následující syntaxi příkazu:
LINK arguments
Možnosti arguments zahrnutí a názvy souborů a lze je zadat v libovolném pořadí. Možnosti se zpracují jako první a pak soubory. K oddělení argumentů použijte jednu nebo více mezer nebo tabulátorů.
Poznámka
Tento nástroj můžete spustit pouze z příkazového Visual Studio příkazového řádku. Nelze jej spustit ze systémového příkazového řádku nebo z Průzkumník souborů.
Příkazový řádek
Na příkazovém řádku se možnost skládá ze specifikátoru možnosti, buď pomlčky (-), nebo lomítka (/) následované názvem možnosti. Názvy možností nelze zkracovat. Některé možnosti převezměte argument zadaný za dvojtečkou (:). Ve specifikaci možnosti nejsou povoleny žádné mezery ani tabulátory, s výjimkou řetězce v uvozovek v možnosti /COMMENT. Zadejte číselné argumenty v desítkovém zápisu nebo zápisu jazyka C. Názvy možností a jejich klíčové slovo nebo argumenty názvů souborů rozlišují malá a velká písmena, ale v identifikátorech argumentů se rozlišují malá a velká písmena.
Pokud chcete předávat soubor linkeru, zadejte název souboru na příkazovém řádku za příkazem LINK. Můžete zadat absolutní nebo relativní cestu s názvem souboru a v názvu souboru můžete použít zástupné znaky. Pokud tečku vyminíte (.) a příponu názvu souboru, link předpokládá, že .obj pro účely vyhledání souboru. LINK nevyu používá přípony názvů souborů ani jejich absence k předpokladům o obsahu souborů. Určuje typ souboru tím, že ho prozkoumá a odpovídajícím způsobem zpracuje.
link.exe úspěchu (bez chyb) vrátí nulu. V opačném případě linker vrátí číslo chyby, které odkaz zastavilo. Pokud například linker vygeneruje LNK1104, linker vrátí 1104. Proto je nejnižší číslo chyby vrácené linkerem 1000. Návratová hodnota 128 představuje problém s konfigurací operačního systému nebo .config souboru. zavaděč nenačte link.exe ani c2.dll.
Soubory příkazů LINK
Argumenty příkazového řádku můžete předat příkazu LINK ve formě souboru příkazů. Pokud chcete zadat soubor příkazu do linkeru, použijte následující syntaxi:
LINK @commandfile
Soubor příkazů je název textového souboru. Mezi znakem at sign ( ) a názvem souboru není povolená @ mezera ani tabulátor. Neexistuje žádné výchozí rozšíření. Je nutné zadat úplný název souboru, včetně jakékoli přípony. Zástupné znaky nelze použít. Můžete zadat absolutní nebo relativní cestu s názvem souboru. LINK k vyhledání souboru používá proměnnou prostředí.
V souboru příkazů lze argumenty oddělit mezerami nebo tabulátory (jako na příkazovém řádku) a znaky nového řádku.
V souboru příkazů můžete zadat celý příkazový řádek nebo jeho část. V příkazu LINK můžete použít více než jeden soubor příkazu. LINK přijímá vstup command-file, jako kdyby byl zadaný v tomto umístění na příkazovém řádku. Soubory příkazů nelze vnořovat. Pokud nezadáte možnost /NOLOGO, zobrazí link obsah souborů příkazů.
Příklad
Následující příkaz pro sestavení knihovny DLL předává názvy souborů objektů a knihoven v samostatných souborech příkazů a používá třetí soubor příkazů pro specifikaci možnosti /EXPORTS:
link /dll @objlist.txt @liblist.txt @exports.txt
Proměnné prostředí LINK
Nástroj LINK používá následující proměnné prostředí:
LINK a _LINK_, pokud jsou definované. Nástroj LINK předá možnosti a argumenty definované v proměnné prostředí LINK a před zpracováním připojí možnosti a argumenty definované v proměnné prostředí _LINK_ k argumentům příkazového řádku.
LIB, pokud je definována. Nástroje LINK používají cestu LIB při hledání objektu, knihovny nebo jiného souboru zadaného na příkazovém řádku nebo pomocí možnosti /BASE. Používá také cestu LIB k vyhledání souboru .pdb s názvem v objektu . Proměnná LIB může obsahovat jednu nebo více specifikací cest oddělených středníky. Jedna cesta musí odkazovat na podadresář \lib vaší Visual C++ instalace.
CESTA, pokud nástroj potřebuje spustit CVTRES a nemůže najít soubor ve stejném adresáři jako nástroj LINK samotný. (LINK vyžaduje CVTRES k propojení souboru .res.) Cesta musí odkazovat na podadresář \bin vaší Visual C++ instalace.
TMP – určuje adresář při propojování souborů OMF nebo .res.
Viz také
Referenční dokumentace sestavení C/C++MSVC linkeru Možnostimodulu definice souborů(.def) –podpora pro Delay-Loaded knihovnyDLL