Linker-Optionen

LINK.exe verknüpft Common Object File Format (COFF)-Objektdateien und -bibliotheken, um eine ausführbare Datei (EXE) oder eine Dynamic Link Library (DLL) zu erstellen.

In der folgenden Tabelle sind die Optionen für "LINK.exe" aufgelistet. Weitere Informationen zu LINK finden Sie unter:

In der Befehlszeile wird die Groß-/Kleinschreibung von Linkeroptionen nicht beachtet. zum Beispiel, /base und /BASE meinen Sie dasselbe. Anweisungen zum Angeben der einzelnen Optionen in der Befehlszeile oder in Visual Studio finden Sie in der Dokumentation zur entsprechenden Option.

Mit dem comment Pragma können Sie einige Linkeroptionen angeben.

Linkeroptionen alphabetisch aufgelistet

Option Zweck
@ Legt eine Antwortdatei fest.
/ALIGN Legt die Ausrichtung eines Abschnitts fest.
/ALLOWBIND Gibt an, dass eine DLL nicht gebunden werden kann.
/ALLOWISOLATION Gibt das Verhalten bei der Manifestsuche an.
/APPCONTAINER Gibt an, ob die App in einer appcontainer-Prozessumgebung ausgeführt werden muss.
/ARM64XFUNCTIONPADMINX64 Gibt die Mindestanzahl der Bytes des Abstands zwischen x64-Funktionen in ARM64X-Bildern an.17.8
/ASSEMBLYDEBUG Fügt einem verwalteten Image das DebuggableAttribute hinzu.
/ASSEMBLYLINKRESOURCE Erstellt einen Link zu einer verwalteten Ressource.
/ASSEMBLYMODULE Legt fest, dass ein MSIL-Modul (Microsoft Intermediate Language) in den Assembler importiert werden soll.
/ASSEMBLYRESOURCE Bettet eine verwaltete Ressourcendatei in eine Assembly ein.
/BASE Legt eine Basisadresse für das Programm fest.
/CETCOMPAT Markiert die Binärdatei als CET-Schattenstapel kompatibel.
/CGTHREADS Legt die Anzahl von cl.exe-Threads zur Verwendung für die Optimierung und Codegenerierung fest, wenn die Link-Zeitcodegenerierung angegeben ist.
/CLRIMAGETYPE Legt den Typ (IJW, rein oder sicher) eines CLR-Images fest.
/CLRSUPPORTLASTERROR Behält den letzten Fehlercode von Funktionen bei, die vom P/Invoke-Mechanismus aufgerufen werden.
/CLRTHREADATTRIBUTE Gibt das Threadingattribut an, das auf den Einstiegspunkt des CLR-Programms angewendet wird.
/CLRUNMANAGEDCODECHECK Gibt an, ob der Linker das SuppressUnmanagedCodeSecurity Attribut auf linkergenerierte P/Invoke-Stubs anwendet, die von verwaltetem Code in systemeigene DLLs aufgerufen werden.
/DEBUG Erstellt Debuginformationen.
/DEBUGTYPE Gibt an, welche Daten in Debuginformationen eingeschlossen werden sollen.
/DEF Übergibt eine Moduldefinitionsdatei (DEF-Datei) an den Linker.
/DEFAULTLIB Durchsucht die angegebene Bibliothek beim Auflösen externer Verweise.
/DELAY Steuert das verzögerte Laden von DLLs.
/DELAYLOAD Löst das verzögerte Laden der angegebenen DLL aus.
/DELAYSIGN Eine Assembly wird teilweise signiert.
/DEPENDENTLOADFLAG Legt Standardkennzeichnungen für abhängige DLL-Ladevorgänge fest.
/DLL Erstellt eine DLL.
/DRIVER Erstellt einen Kernelmodustreiber.
/DYNAMICBASE Gibt an, ob ein ausführbares Bild generiert werden soll, das zur Ladezeit mithilfe des AsLR-Features (Address Space Layout Randomization) rebasediert wird.
/ENTRY Legt die Startadresse fest.
/ERRORREPORT Veraltet. Die Fehlerberichterstattung wird durch Windows-Fehlerberichterstattung (WER)-Einstellungen gesteuert.
/EXPORT Exportiert eine Funktion.
/FILEALIGN Richtet Abschnitte innerhalb der Ausgabedatei an Vielfachen eines angegebenen Werts aus.
/FIXED Erstellt ein Programm, das nur an seiner bevorzugten Basisadresse geladen werden kann.
/FORCE Erzwingt die Fertigstellung des Links, auch wenn nicht aufgelöste oder mehrfach definierte Symbole vorliegen.
/FUNCTIONPADMIN Erstellt ein Hotpatch-fähiges Image.
/GENPROFILE, /FASTGENPROFILE Beide Optionen geben die Generierung einer .pgd Datei durch den Linker an, um die profilgesteuerte Optimierung (PGO) zu unterstützen. /GENPROFILE und /FASTGENPROFILE verwenden unterschiedliche Standardparameter.
/GUARD Aktiviert den Ablaufsteuerungsschutz.
/HEAP Legt die Größe des Heap in Bytes fest.
/HIGHENTROPYVA Gibt die Unterstützung für 64-Bit-ASLR (Address Space Layout Randomization) mit hoher Entropie an.
/IDLOUT Gibt den Namen der .idl Datei und anderer MIDL-Ausgabedateien an.
/IGNORE Unterdrückt die Ausgabe der angegebenen Linkerwarnungen.
/IGNOREIDL Verhindert die Verarbeitung von Attributinformationen in einer .idl Datei.
/ILK Setzt den standardmäßigen inkrementellen Datenbankdateinamen außer Kraft.
/IMPLIB Überschreibt den Standardnamen für die Importbibliothek.
/INCLUDE Erzwingt Symbolverweise.
/INCREMENTAL Steuert inkrementelles Verknüpfen.
/INFERASANLIBS Verwendet abgeleitete Bereinigungsbibliotheken.
/INTEGRITYCHECK Gibt an, dass für das Modul eine Signaturüberprüfung zur Ladezeit erforderlich ist.
/KERNEL Erstellen Sie eine Binärdatei für den Kernelmodus.
/KEYCONTAINER Gibt einen Schlüsselcontainer zum Signieren einer Assembly an.
/KEYFILE Gibt einen Schlüssel oder ein Schlüsselpaar zum Signieren einer Assembly an.
/LARGEADDRESSAWARE Teilt dem Compiler mit, dass die Anwendung Adressen unterstützt, die größer als 2 Gigabyte sind.
/LIBPATH Gibt einen Suchpfad vor dem Umgebungsbibliothekspfads an.
/LINKREPRO Gibt einen Pfad zum Generieren von Verbindungs-Repro-Artefakten an.
/LINKREPROFULLPATHRSP Generiert eine Antwortdatei, die die absoluten Pfade zu allen Dateien enthält, die der Linker als Eingabe verwendet hat.
/LINKREPROTARGET Generiert einen Link-Repro nur, wenn das angegebene Ziel erstellt wird.16.1
/LTCG Gibt Link-Zeitcodegenerierung an.
/MACHINE Legt die Zielplattform fest.
/MANIFEST Erstellt eine parallele Manifestdatei und bettet sie optional in der Binärdatei ein.
/MANIFESTDEPENDENCY Gibt einen <abhängigenAssembly-Abschnitt> in der Manifestdatei an.
/MANIFESTFILE Ändert den Standardnamen der Manifestdatei.
/MANIFESTINPUT Gibt eine Manifesteingabedatei an, die der Linker verarbeitet und in der Binärdatei einbettet. Sie können diese Option mehrmals verwenden, um mehr als eine Manifesteingabedatei anzugeben.
/MANIFESTUAC Gibt an, ob Informationen zur Benutzerkontensteuerung (UAC) in das Programmmanifest eingebettet werden.
/MAP Erstellt eine Zuordnungsdatei.
/MAPINFO Fügt die angegebenen Informationen in die Zuordnungsdatei ein.
/MERGE Kombiniert Abschnitte miteinander.
/MIDL Gibt die MIDL-Befehlszeilenoptionen an.
/NATVIS Fügt der Programmdatenbank (PDB) Debuggerschnellansichten aus einer Natvis-Datei hinzu.
/NOASSEMBLY Unterdrückt die Erstellung einer .NET Framework-Assembly.
/NODEFAULTLIB Ignoriert alle (angegebenen) Standardbibliotheken bei der Auflösung von externen Verweisen.
/NOENTRY Erstellt eine DLL, die nur als Ressource dient.
/NOFUNCTIONPADSECTION Deaktiviert den Funktionsabstand für Funktionen im angegebenen Abschnitt.17.8
/NOLOGO Unterdrückt den Startbanner.
/NXCOMPAT Kennzeichnet eine ausführbare Datei als mit der Windows-Funktion zur Datenausführungsverhinderung kompatibel.
/OPT Steuert die LINK-Optimierungen.
/ORDER Fügt COMDATs in einer vordefinierten Reihenfolge in das Image ein.
/OUT Gibt den Ausgabedateinamen an.
/PDB Erstellt eine PDB-Datei.
/PDBALTPATH Verwendet einen alternativen Speicherort zum Speichern einer PDB-Datei.
/PDBSTRIPPED Erstellt eine PDB-Datei ohne private Symbole.
/PGD Gibt eine .pgd Datei für profilgeführte Optimierungen an.
/POGOSAFEMODE Veraltet Erstellt einen threadsicheren PGO-Instrumentierten Build.
/PROFILE Erstellt eine Ausgabedatei, die mit dem Leistungstoolprofiler verwendet werden kann.
/RELEASE Legt die Prüfsumme in der .exe Kopfzeile fest.
/SAFESEH Legt fest, dass das Image eine Tabelle mit sicheren Ausnahmehandlern enthält.
/SECTION Überschreibt die Attribute eines Abschnitts.
/SOURCELINK Gibt eine SourceLink-Datei an, die dem PDB hinzugefügt werden soll.
/STACK Legt die Stapelgröße in Bytes fest.
/STUB Fügt ein MS-DOS-Stubprogramm an ein Win32-Programm an.
/SUBSYSTEM Teilt dem Betriebssystem mit, wie die .exe Datei ausgeführt wird.
/SWAPRUN Weist das Betriebssystem an, die Linkerausgabe in eine Auslagerungsdatei zu kopieren, bevor sie ausgeführt wird.
/TIME Ausgabelinker übergeben Anzeigedauerinformationen.
/TLBID Gibt Ressourcen-ID der vom Linker generierten Typbibliothek an.
/TLBOUT Gibt den Namen der .tlb Datei und anderer MIDL-Ausgabedateien an.
/TSAWARE Erstellt eine Anwendung, die auf dem Terminalserver ausgeführt werden soll.
/USEPROFILE Verwendet profilgeführte Optimierungsschulungsdaten, um ein optimiertes Bild zu erstellen.
/VERBOSE Druckt Linkerstatusmeldungen aus.
/VERSION Weist eine Versionsnummer zu.
/WHOLEARCHIVE Enthält jede Objektdatei aus angegebenen statischen Bibliotheken.
/WINMD Aktiviert die Generierung einer Windows-Runtime-Metadatendatei.
/WINMDFILE Gibt den Dateinamen für die Windows-Runtime Metadatenausgabedatei (winmd) an, die von der /WINMD Linkeroption generiert wird.
/WINMDKEYFILE Gibt einen Schlüssel oder ein Schlüsselpaar an, um eine Windows-Runtime-Metadatendatei zu signieren.
/WINMDKEYCONTAINER Gibt einen Schlüsselcontainer zum Signieren einer Windows-Metadatendatei an.
/WINMDDELAYSIGN Signiert teilweise eine Windows-Runtime Metadatendatei (.winmd) durch Platzieren des öffentlichen Schlüssels in der winmd-Datei.
/WX Behandelt Linkerwarnungen als Fehler.

16.1 Diese Option ist ab Visual Studio 2019, Version 16.1, verfügbar.
17.8 Diese Option ist ab Visual Studio 2022, Version 17.8, verfügbar.

Siehe auch

Referenz zur C/C++-Erstellung
MSVC-Linkerreferenz