/INCREMENTAL (Collegamento incrementale)

Specifica se collegare in modo incrementale o sempre eseguire un collegamento completo.

Sintassi

/INCREMENTAL[:NO]

Osservazioni:

L'opzione /INCREMENTAL del linker controlla il modo in cui il linker gestisce il collegamento incrementale.

Per impostazione predefinita il linker viene eseguito in modalità incrementale. Per eseguire l'override di un collegamento incrementale predefinito, specificare /INCREMENTAL:NO.

Un programma collegato in modo incrementale equivale funzionalmente a un programma non collegato in modo incrementale. Tuttavia, poiché è preparato per i collegamenti incrementali successivi, un eseguibile collegato incrementale, una libreria statica o un file di libreria a collegamento dinamico:

  • È maggiore di un programma collegato non incrementale a causa della spaziatura interna di codice e dati. La spaziatura interna consente al linker di aumentare le dimensioni delle funzioni e dei dati senza ricreare il file.

  • È possibile che contengano thunk dei salti per gestire la rilocazione di funzioni in nuovi indirizzi.

    Nota

    Per assicurarsi che la build finale non contenga spaziatura interna o batch, collegare il programma in modo non incrementale.

Per collegare in modo incrementale indipendentemente dal valore predefinito, specificare /INCREMENTAL. Quando questa opzione è selezionata, il linker genera un avviso se non riesce a collegarsi in modo incrementale e quindi collega il programma in modo non incrementale. Alcune opzioni e situazioni sostituiscono /INCREMENTAL.

È possibile collegare in modo incrementale la maggior parte dei programmi. Alcune modifiche sono tuttavia eccessive e alcune opzioni sono incompatibili con il collegamento incrementale. LINK esegue un collegamento completo se viene specificata una delle opzioni seguenti:

  • Collegamento incrementale non selezionato (/INCREMENTAL:NO)

  • /OPT:REF è selezionato

  • /OPT:ICF è selezionato

  • /OPT:LBR è selezionato

  • /ORDER è selezionato

/INCREMENTAL è implicito quando /DEBUG viene specificato.

LINK esegue un collegamento completo qualora si verifichi una delle situazioni seguenti:

  • File di stato incrementale (.ilk) mancante. (LINK crea un nuovo .ilk file in preparazione per il collegamento incrementale successivo).

  • Non è disponibile alcuna autorizzazione di scrittura per il .ilk file. LINK ignora il .ilk file e i collegamenti non incrementali.

  • File .exe di output o .dll mancante.

  • Il timestamp di .ilk, .exeo .dll viene modificato.

  • Un'opzione LINK è cambiata. In caso di modifica nelle build, la maggior parte delle opzioni LINK causa un collegamento completo.

  • Un file oggetto (.obj) viene aggiunto o omesso.

Un collegamento incrementale crea o aggiorna un file di database .ilk di collegamento incrementale. È possibile specificare il nome e il percorso del file usando l'opzione /ILK del linker (Nome file di database incrementale). Per altre informazioni sul .ilk file, vedere .ilk file come input del linker.

Per impostare questa opzione del linker nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle>proprietà Proprietà di configurazione Linker>Generale.

  3. Modificare la proprietà Abilita collegamento incrementale.

Per impostare l'opzione del linker a livello di codice

  1. Vedere LinkIncremental.

Vedi anche

Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC
.ilk file come input del linker