/INCREMENTAL (collegamento incrementale)
/INCREMENTAL[:NO]
Note
L'opzione /INCREMENTAL consente di controllare le modalità di gestione del collegamento incrementale nel linker.
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 è funzionalmente equivalente a un programma che non lo è. Dal momento tuttavia che sono preparati per collegamenti incrementali successivi, i file eseguibili (exe) e le librerie a collegamento dinamico (DLL) collegati in modo incrementale presentano le seguenti caratteristiche:
Sono di dimensioni maggiori rispetto ai programmi collegati in modo non incrementale a causa della spaziatura di codice e dati. La spaziatura consente infatti al linker di aumentare la dimensione di funzioni e dati senza ricreare il file exe.
È possibile che contengano thunk dei salti per gestire la rilocazione di funzioni a nuovi indirizzi.
Nota
Per assicurarsi che la compilazione di rilascio finale non contenga spaziature o thunk, collegare il programma in modo non incrementale.
Per eseguire il collegamento incrementale indipendentemente dall'impostazione predefinita, specificare /INCREMENTAL. Quando questa opzione è selezionata, viene generato un avviso se non è possibile eseguire il collegamento in modo incrementale, quindi il programma viene collegato in modo non incrementale. Con alcune opzioni e situazioni viene eseguito l'override di /INCREMENTAL.
È possibile collegare in modo incrementale la maggior parte dei programmi. Alcune modifiche sono tuttavia di dimensioni eccessive e alcune opzioni sono incompatibili con il collegamento incrementale. In LINK viene eseguito un collegamento completo se viene specificata una delle seguenti opzioni:
Collegamento incrementale non selezionato (/INCREMENTAL:NO)
/OPT:REF selezionata
/OPT:ICF selezionata
/ORDER selezionata
/INCREMENTAL è implicito quando si specifica /DEBUG.
Viene inoltre eseguito un collegamento completo in una delle seguenti situazioni:
Il file di stato incrementale con estensione ilk è mancante. Viene infatti creato automaticamente un nuovo file ilk in preparazione di un collegamento incrementale successivo.
Il file ilk non dispone dell'autorizzazione alla scrittura. Il file ilk viene automaticamente ignorato e il collegamento viene eseguito in modo non incrementale.
Il file di output exe o dll è mancante.
Il timestamp del file ilk, exe o dll è cambiato.
Un'opzione di LINK è cambiata. Con numerose opzioni di LINK, se modificate tra una compilazione e l'altra, viene causato un collegamento completo.
Un file oggetto (obj) viene aggiunto o omesso.
Un oggetto compilato con l'opzione /Yu /Z7 è cambiato.
Per impostare l'opzione del linker nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostazione delle proprietà dei progetti Visual C++.
Selezionare la cartella Linker.
Fare clic sulla pagina delle proprietà Generale.
Modificare la proprietà Attiva collegamento incrementale.
Per impostare l'opzione del linker a livello di codice
- Vedere la proprietà LinkIncremental.