Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I ett C++-projekt utförs länkningssteget när kompilatorn kompilerar källkoden till objektfiler (*.obj). Länkaren (link.exe) kombinerar objektfilerna till en enda körbar fil.
Länkalternativ kan anges i eller utanför Visual Studio. I Visual Studio får du åtkomst till länkalternativ genom att högerklicka på en projektnod i Solution Explorer och välja Egenskaper för att visa egenskapssidorna. Välj Linker i det vänstra fönstret för att expandera noden och se alla alternativ.
Kommandoradssyntax för Linker
När du kör länkaren utanför Visual Studio kan du ange indata på ett eller flera sätt:
- På kommandoraden
- Använda kommandofiler
- I miljövariabler
Länkaren bearbetar de första processalternativen LINK som anges i miljövariabeln, följt av alternativ i den ordning de anges på kommandoraden och i kommandofilerna. Om ett alternativ upprepas med olika argument prioriteras det sista som bearbetas.
Alternativen gäller för hela bygget. inga alternativ kan tillämpas på specifika indatafiler.
Om du vill köra link.exeanvänder du följande kommandosyntax:
link arguments
Inkludera arguments alternativ och filnamn och kan anges i valfri ordning. Alternativen bearbetas först och sedan filer. Använd ett eller flera blanksteg eller flikar för att separera argument.
Anmärkning
Du kan bara starta det här verktyget från Visual Studio-kommandotolken. Du kan inte starta den från en systemkommandofråga eller från Utforskaren.
kommandorad
På kommandoraden består ett alternativ av en alternativspecificerare, antingen ett streck (-) eller ett snedstreck (/), följt av namnet på alternativet. Alternativnamn kan inte förkortas. Vissa alternativ tar ett argument som anges efter ett kolon (:). Inga blanksteg eller flikar tillåts i en alternativspecifikation, förutom i en citerad sträng i /COMMENT alternativet. Ange numeriska argument i decimal- eller C-språk notation. Alternativnamn och deras nyckelords- eller filnamnsargument är inte skiftlägeskänsliga, men identifierare som argument är skiftlägeskänsliga.
Om du vill skicka en fil till länkaren anger du filnamnet på kommandoraden link.exe efter kommandot. Du kan ange en absolut eller relativ sökväg med filnamnet och du kan använda jokertecken i filnamnet. Om du utelämnar filnamnstillägget punkt (.) och filnamn förutsätter länkaren ett tillägg .obj för att hitta filen. Länkaren använder inte filnamnstillägg eller bristen på dem för att göra antaganden om innehållet i filer. Den avgör vilken typ av fil som ska undersökas och bearbetas därefter.
Anmärkning
Olika länkflaggor tar ett filnamn. Oavsett om du anger en relativ sökväg eller en absolut sökväg, om det fullständigt kvalificerade filnamnet överskrider MAX_PATH (260 tecken), kan länkaren misslyckas – särskilt när du söker efter bibliotek. Om det här problemet uppstår kan du prova att använda en kortare sökväg.
Länkaren returnerar noll för lyckat resultat (inga fel). Annars returneras felnumret som stoppade länken. Om till exempel länkaren genererar returnerar LNK1104länkaren 1104. Därför är det lägsta felnumret som returneras på ett fel av länkaren 1000. Ett returvärde på 128 representerar ett konfigurationsproblem med antingen operativsystemet eller en .config fil. inläsaren läste inte in någon av link.exe dem eller c2.dll.
Linker-kommandofiler
Du kan skicka kommandoradsargument till link.exe i form av en kommandofil. Om du vill ange en kommandofil till länkaren använder du följande syntax:
link @commandfile
commandfile är namnet på en textfil. Inget utrymme eller flik tillåts mellan vid-tecknet (@) och filnamnet. Det finns inget standardtillägg. du måste ange det fullständiga filnamnet, inklusive eventuella tillägg. Jokertecken kan inte användas. Du kan ange en absolut eller relativ sökväg med filnamnet. Får inte överstiga MAX_PATH (260 tecken). Länkaren använder inte en miljövariabel för att söka efter filen.
I kommandofilen avgränsas argumenten med blanksteg eller flikar (som på kommandoraden) och med nya radtecken.
Du kan ange hela eller en del av kommandoraden i en kommandofil. Du kan använda mer än en kommandofil i ett link.exe kommando. Länkaren accepterar kommandofilens indata som om den hade angetts på den platsen på kommandoraden. Det går inte att kapsla kommandofiler. Länkaren ekar innehållet i kommandofilerna, såvida inte /NOLOGO anges.
Example
Följande kommando skapar en DLL. Den skickar namnen på objektfiler och bibliotek i separata kommandofiler och använder en tredje kommandofil för specifikation av /EXPORTS alternativet:
link /dll @objlist.txt @liblist.txt @exports.txt
LINK-miljövariabler
Länkaren identifierar följande miljövariabler:
-
LINKoch_LINK_, om det definieras. Länkaren förbereder de alternativ och argument som definierats iLINKmiljövariabeln och lägger till de alternativ och argument som definierats i_LINK_miljövariabeln till kommandoradsargumenten innan bearbetningen. -
LIB, om det definieras. Länkaren använderLIBsökvägen när den söker efter ett objekt, bibliotek eller en annan fil som anges på kommandoraden eller med/BASEalternativet . Den använderLIBockså sökvägen för att hitta en.pdbfil med namnet i ett objekt. VariabelnLIBkan innehålla en eller flera sökvägsspecifikationer, avgränsade med semikolon. En sökväg måste peka på underkatalogen\libför din Microsoft C++-installation. -
PATH, om verktyget behöver körasCVTRESoch inte kan hitta filen i samma katalog somlink.exesig själv. (link.exekräverCVTRESatt en.resfil länkas.)PATHmåste peka på underkatalogen\binför din Microsoft C++-installation. -
TMP, för att ange en katalog när du länkar OMF eller.resfiler.
Se även
C/C++-byggnadsreferens
MSVC Linker-alternativ
Module-Definition (.def) Filer
Linker-stöd för Delay-Loaded DLL:er