Condividi tramite


Opzioni linker

LINK.exe collega file di oggetti COFF (Common Object File Format) e librerie per creare un file eseguibile (EXE) o una libreria a collegamento dinamico (DLL).

La tabella seguente contiene un elenco di opzioni per LINK.exe. Per altre informazioni su LINK, vedere:

Nella riga di comando le opzioni del linker non fanno distinzione tra maiuscole e minuscole; ad esempio, /base e /BASE significa la stessa cosa. Per informazioni dettagliate su come specificare ogni opzione nella riga di comando o in Visual Studio, vedere la documentazione relativa all'opzione.

È possibile usare il comment pragma per specificare alcune opzioni del linker.

Opzioni del linker elencate alfabeticamente

Opzione Scopo
@ Specifica un file di risposta.
/ALIGN Specifica l'allineamento di ogni sezione.
/ALLOWBIND Specifica che una DLL non può essere associata.
/ALLOWISOLATION Specifica il comportamento per la ricerca del manifesto.
/APPCONTAINER Specifica se l'app deve essere eseguita in un ambiente di elaborazione Appcontainer.
/ARM64XFUNCTIONPADMINX64 Specifica il numero minimo di byte di spaziatura interna tra le funzioni x64 nelle immagini ARM64X.17.8
/ASSEMBLYDEBUG Aggiunge DebuggableAttribute a un'immagine gestita.
/ASSEMBLYLINKRESOURCE Crea un collegamento a una risorsa gestita.
/ASSEMBLYMODULE Specifica che un modulo MSIL (Microsoft Intermediate Language) deve essere importato nell'assembly.
/ASSEMBLYRESOURCE Incorpora un file di risorse gestite in un assembly.
/BASE Imposta un indirizzo di base per il programma.
/CETCOMPAT Contrassegna il file binario come compatibile con CET Shadow Stack.
/CGTHREADS Imposta il numero di thread cl.exe da usare per l'ottimizzazione e la generazione di codice quando si specifica la generazione del codice in fase di collegamento.
/CLRIMAGETYPE Imposta il tipo (IJW, pure o safe) di un'immagine CLR.
/CLRSUPPORTLASTERROR Conserva l'ultimo codice di errore delle funzioni chiamate con il meccanismo P/Invoke.
/CLRTHREADATTRIBUTE Specifica l'attributo threading da applicare al punto di ingresso del programma CLR.
/CLRUNMANAGEDCODECHECK Specifica se il linker applica l'attributo SuppressUnmanagedCodeSecurity agli stub P/Invoke generati dal linker che chiamano dal codice gestito in DLL native.
/DEBUG Crea informazioni di debug.
/DEBUGTYPE Specifica i dati da includere nelle informazioni di debug.
/DEF Passa a LIB un file di definizione moduli (estensione def).
/DEFAULTLIB Esegue ricerche nella libreria specificata per la risoluzione dei riferimenti esterni.
/DELAY Controlla il caricamento ritardato delle DLL.
/DELAYLOAD Causa il caricamento ritardato della DLL specificata.
/DELAYSIGN Firma parzialmente un assembly.
/DEPENDENTLOADFLAG Imposta i flag predefiniti sui caricamenti di DLL dipendenti.
/DLL Compila una DLL.
/DRIVER Crea un driver in modalità kernel.
/DYNAMICBASE Specifica se generare un'immagine eseguibile ribasata in fase di caricamento usando la funzionalità asLR (Address Space Layout Randomization).
/ENTRY Imposta indirizzo iniziale.
/ERRORREPORT Deprecato. La segnalazione errori è controllata dalle impostazioni di Segnalazione errori Windows (WER).
/EXPORT Esporta una funzione.
/FILEALIGN Allinea le sezioni all'interno del file di output su multipli di un valore specificato.
/FIXED Crea un programma caricabile solo nel relativo indirizzo di base preferito.
/FORCE Forza il completamento di un collegamento nonostante la presenza di simboli non risolti o definiti più volte.
/FUNCTIONPADMIN Crea un'immagine su cui si può applicare una patch a caldo.
/GENPROFILE, /FASTGENPROFILE Entrambe queste opzioni specificano la generazione di un .pgd file dal linker per supportare l'ottimizzazione PGO (Profile-Guided Optimization). / GENPROFILE e /FASTGENPROFILE usano parametri predefiniti diversi.
/GUARD Abilita la protezione guard flusso di controllo.
/HEAP Imposta le dimensioni in byte dell'heap.
/HIGHENTROPYVA Specifica il supporto per la funzionalità ASLR a 64 bit a entropia elevata.
/IDLOUT Specifica il nome del .idl file e altri file di output MIDL.
/IGNORE Disattiva l'output degli avvisi del linker specificati.
/IGNOREIDL Impedisce l'elaborazione delle informazioni sugli attributi in un .idl file.
/ILK Esegue l'override del nome del file di database incrementale predefinito.
/IMPLIB Esegue l'override del nome predefinito della libreria di importazione.
/INCLUDE Impone di includere riferimenti al simbolo.
/INCREMENTAL Controlla il collegamento incrementale.
/INFERASANLIBS Usa librerie di purificazione dedotte.
/INTEGRITYCHECK Specifica che il modulo richiede una verifica della firma in fase di caricamento.
/KERNEL Creare un file binario in modalità kernel.
/KEYCONTAINER Specifica un contenitore di chiavi per firmare un assembly.
/KEYFILE Specifica una chiave o una coppia di chiavi per firmare un assembly.
/LARGEADDRESSAWARE Indica al compilatore che l'applicazione supporta indirizzi superiori a 2 gigabyte
/LIBPATH Specifica un percorso da cercare prima del percorso della libreria dell'ambiente.
/LINKREPRO Specifica un percorso in cui generare gli artefatti di riproduzione dei collegamenti.
/LINKREPROFULLPATHRSP Genera un file di risposta contenente i percorsi assoluti per tutti i file che il linker ha preso come input.
/LINKREPROTARGET Genera una riproduzione del collegamento solo quando si produce la destinazione specificata.16.1
/LTCG Specifica la generazione del codice in fase di collegamento.
/MACHINE Specifica la piattaforma di destinazione.
/MANIFEST Crea un file manifesto side-by-side e facoltativamente lo incorpora nel file binario.
/MANIFESTDEPENDENCY Specifica una <sezione dependentAssembly> nel file manifesto.
/MANIFESTFILE Modifica il nome predefinito del file manifesto.
/MANIFESTINPUT Specifica un file di input del manifesto che il linker deve elaborare e incorporare nel file binario. Questa opzione si può usare più volte per specificare più file di input del manifesto.
/MANIFESTUAC Specifica se le informazioni di Controllo dell'account utente sono incorporate nel manifesto del programma.
/MAP Crea un file MAP.
/MAPINFO Include le informazioni specificate nel file di mapping.
/MERGE Combina le sezioni.
/MIDL Specifica opzioni della riga di comando MIDL.
/NATVIS Aggiunge i visualizzatori del debugger da un file Natvis al database del programma (PDB).
/NOASSEMBLY Disattiva la creazione di un assembly .NET Framework.
/NODEFAULTLIB Ignora tutte le librerie predefinite (o quelle specificate) durante la risoluzione dei riferimenti esterni.
/NOENTRY Crea una DLL di sole risorse.
/NOFUNCTIONPADSECTION Disabilita la spaziatura interna delle funzioni per le funzioni nella sezione specificata.17.8
/NOLOGO Evita la visualizzazione del messaggio di avvio.
/NXCOMPAT Indica che è stato eseguito il test di un eseguibile per verificarne la compatibilità con la funzionalità Protezione esecuzione programmi di Windows.
/OPT Controlla le ottimizzazioni di LINK.
/ORDER Inserisce COMDAT nell'immagine secondo un ordine predeterminato.
/OUT Specifica il nome del file di output.
/PDB Crea un file PDB.
/PDBALTPATH Usa un percorso alternativo per salvare un file PDB.
/PDBSTRIPPED Crea un file PDB senza simboli privati.
/PGD Specifica un .pgd file per le ottimizzazioni guidate dal profilo.
/POGOSAFEMODE Obsoleto Crea una compilazione PGO thread-safe instrumentata.
/PROFILE Produce un file di output che può essere usato con il profiler di Strumenti per le prestazioni.
/RELEASE Imposta il checksum nell'intestazione .exe .
/SAFESEH Specifica che l'immagine conterrà una tabella di gestori eccezioni sicuri.
/SECTION Esegue l'override gli attributi di una sezione.
/SOURCELINK Specifica un file SourceLink da aggiungere al PDB.
/STACK Imposta le dimensioni in byte dello stack.
/STUB Connette un programma stub MS-DOS a un programma Win32.
/SUBSYSTEM Indica al sistema operativo come eseguire il .exe file.
/SWAPRUN Indica al sistema operativo di copiare l'output del linker in un file di scambio prima dell'esecuzione.
/TIME Le informazioni di intervallo del linker di output passano.
/TLBID Specifica l'ID di risorsa della libreria dei tipi generata dal linker.
/TLBOUT Specifica il nome del .tlb file e altri file di output MIDL.
/TSAWARE Crea un'applicazione specificamente progettata per l'esecuzione in Terminal Server.
/USEPROFILE Usa i dati di training di ottimizzazione guidata dal profilo per creare un'immagine ottimizzata.
/VERBOSE Visualizza i messaggi di stato del linker.
/VERSION Assegna un numero di versione.
/WHOLEARCHIVE Include ogni file oggetto dalle librerie statiche specificate.
/WINMD Abilita la generazione di un file di metadati di Windows Runtime.
/WINMDFILE Specifica il nome file per il file di output dei metadati di Windows Runtime (winmd) generato dall'opzione /WINMD del linker.
/WINMDKEYFILE Specifica una chiave o una coppia di chiavi per firmare un file di metadati di Windows Runtime.
/WINMDKEYCONTAINER Specifica un contenitore di chiavi per firmare un file di metadati di Windows Runtime.
/WINMDDELAYSIGN Firma parzialmente un file di metadati di Windows Runtime (.winmd) inserendo la chiave pubblica nel file winmd.
/WX Considera gli avvisi del linker come errori.

16.1 Questa opzione è disponibile a partire da Visual Studio 2019 versione 16.1.
17.8 Questa opzione è disponibile a partire da Visual Studio 2022 versione 17.8.

Vedi anche

Riferimenti alla compilazione in C/C++
Informazioni di riferimento sul linker MSVC