Pagine delle proprietà C/C++
Le pagine delle proprietà seguenti sono disponibili in Proprietà>progetto>>Proprietà configurazione C/C++:
Proprietà generali C/C++
Directory di inclusione aggiuntive
Specifica una o più directory da aggiungere al percorso di inclusione. Separare le directory con punti e virgola ('';
) se sono presenti più directory. Imposta l'opzione del /I
compilatore (Directory di inclusione aggiuntive).
Directory aggiuntive #using
Specifica una o più directory in cui eseguire la ricerca per risolvere i nomi passati a una #using
direttiva. Separare le directory con punti e virgola ('';
) se sono presenti più directory. Imposta l'opzione del /AI
compilatore.
Directory BMI aggiuntive
Specifica una o più directory in cui eseguire la ricerca per risolvere i nomi passati a una import
direttiva. Separare le directory con punti e virgola ('';
) se sono presenti più directory. Imposta l'opzione del /ifcSearchDir[path]
compilatore.
Dipendenze aggiuntive del modulo
Specifica uno o più moduli da usare per risolvere i nomi passati a una import
direttiva. Separare le directory con punti e virgola ('';
) se sono presenti più directory. Imposta l'opzione del /reference
compilatore.
Dipendenze aggiuntive dell'unità di intestazione
Specifica una o più unità di intestazione da utilizzare per risolvere i nomi passati a una import
direttiva di intestazione. Separare le directory con punti e virgola ('';
) se sono presenti più directory. Imposta l'opzione del /headerUnit
compilatore.
Analizzare le origini per le dipendenze dei moduli
Se impostato su Sì, il compilatore analizza tutte le origini C++, non solo l'interfaccia del modulo e le origini unità di intestazione, per le dipendenze di unità di modulo e intestazione. Il sistema di compilazione compila il grafico delle dipendenze completo, che garantisce che tutti i moduli importati e le unità di intestazione vengano compilati prima di compilare i file che dipendono da essi. Se combinato con Translate Includes to Imports, qualsiasi file di intestazione specificato in un header-units.json
file nella stessa directory del file di intestazione viene compilato in un'unità di intestazione.
I file con estensione .ixx
e i file con le relative proprietà>File C/C++>Compile As sono impostati su Compila come unità di intestazione C++ (/exportHeader), vengono sempre analizzati.
Traduci include in importazioni
Se impostato su Sì, il compilatore considera una #include
direttiva come import
direttiva se vengono soddisfatte determinate condizioni: il file di intestazione viene specificato in un header-units.json
file nella stessa directory e un'unità di intestazione compilata (un .ifc
file) è disponibile per il file di intestazione. In caso contrario, il file di intestazione viene considerato come normale #include
. Il header-units.json
file viene usato per creare unità di intestazione per ognuna #include
senza duplicazione dei simboli. Se combinato con Le origini di analisi per le dipendenze del modulo, il compilatore trova automaticamente tutti i file di intestazione che possono essere compilati in unità di intestazione. Questa proprietà imposta l'opzione del /translateInclude
compilatore.
Formato informazioni di debug
Specifica il tipo di informazioni di debug generate dal compilatore. Questa proprietà richiede impostazioni del linker compatibili. Imposta /Z7
le opzioni del compilatore , /Zi
/ZI
(formato informazioni di debug).
Scelte
- Nessuno: non produce informazioni di debug, quindi la compilazione può risultare più veloce.
- Compatibile con C7: selezionare il tipo di informazioni di debug create per il programma e se queste informazioni vengono mantenute in file oggetto (.obj) o in un database di programma (PDB).
- Database programma: produce un database di programma (PDB) che contiene informazioni sul tipo e informazioni di debug simbolico da usare con il debugger. Le informazioni di debug simbolico includono i nomi e i tipi di variabili e funzioni e i numeri di riga.
- Programma database per modifica e continuazione: produce un database di programma, come descritto in precedenza, in un formato che supporta la funzionalità Modifica e continuazione .
Supportare solo il debug del codice
Aggiunge il codice di supporto per l'abilitazione del debug Just My Code in questa unità di compilazione. Imposta /JMC
.
Supporto RunTime di Common Language
Usare il servizio runtime .NET. Questa opzione non è compatibile con altri commutatori; per informazioni dettagliate, vedere la documentazione sulla /clr
famiglia di opzioni.
Scelte
- Nessun supporto RunTime di Common Language - Nessun supporto RunTime di Common Language
- Supporto RunTime di Common Language: crea metadati per l'applicazione che possono essere utilizzati da altre applicazioni CLR. Consente inoltre all'applicazione di utilizzare tipi e dati nei metadati di altri componenti CLR.
- Puro supporto RunTime di Common Language MSIL: produce un file di output solo MSIL senza codice eseguibile nativo, anche se può contenere tipi nativi compilati in MSIL.
- Supporto RunTime di Common Language MSIL sicuro: produce solo MSIL (nessun codice eseguibile nativo) e un file di output verificabile.
Utilizzare l'estensione Windows Runtime
Utilizzare le estensioni dei linguaggi di runtime di Windows. Imposta /ZW
.
Non visualizzare messaggio di avvio
Elimina la visualizzazione del banner di accesso all'avvio e alla visualizzazione dei messaggi informativi durante la compilazione.
Livello avvisi
Specifica il grado di severità del controllo effettuato dal compilatore per trovare gli errori del codice. Imposta /W0
- /W4
.
Scelte
- Disattiva tutti gli avvisi: il livello 0 disabilita tutti gli avvisi.
- Level1 : il livello 1 visualizza avvisi gravi. Il livello 1 è il livello di avviso predefinito nella riga di comando.
- Level2 : il livello 2 visualizza tutti gli avvisi di livello 1 e gli avvisi meno gravi del livello 1.
- Level3 : il livello 3 visualizza tutti gli avvisi di livello 2 e tutti gli altri avvisi consigliati per scopi di produzione.
- Level4 - Livello 4 visualizza tutti gli avvisi di livello 3 e gli avvisi informativi, che nella maggior parte dei casi possono essere ignorati in modo sicuro.
- EnableAllWarnings : abilita tutti gli avvisi, inclusi quelli disabilitati per impostazione predefinita.
Considera gli avvisi come errori
Considera gli avvisi del compilatore come errori. Per un nuovo progetto, può essere preferibile usare /WX
in ogni compilazione. Risolvere tutti gli avvisi per ridurre al minimo i difetti del codice difficili da trovare.
Versione avviso
Nascondere gli avvisi introdotti dopo una versione specifica del compilatore. Imposta /Wv:xx[.yy[.zzzzz]]
.
Formato diagnostica
Abilita la diagnostica avanzata, con informazioni sulla colonna e contesto di origine nei messaggi di diagnostica.
Scelte
- Cursore : fornisce informazioni sulla colonna nel messaggio di diagnostica. Restituisce inoltre la riga di codice sorgente pertinente con un cursore che indica la colonna che causa l'errore.
- Informazioni sulla colonna: fornisce inoltre il numero di colonna all'interno della riga in cui viene eseguita la diagnostica, se applicabile.
- Classico : restituisce solo i messaggi diagnostici precedenti e concisi con il numero di riga.
Controlli SDL
Controlli consigliati aggiuntivi del ciclo di vita dello sviluppo della sicurezza (SDL); include l'abilitazione di funzionalità di generazione di codice sicure aggiuntive e abilita avvisi aggiuntivi rilevanti per la sicurezza come errori. Imposta /sdl
, /sdl-
.
Compilazione a più processori
Abilitare la compilazione multiprocessore. Imposta l'opzione del /MP
compilatore.
Abilitare Address Sanitizer
Compila e collega il programma con la strumentazione AddressSanitizer. Questa proprietà supporta attualmente le build di destinazione x86 e x64. Imposta l'opzione del /fsanitize
compilatore.
Proprietà di ottimizzazione C/C++
Ottimizzazione
Selezionare l'opzione per l'ottimizzazione del codice; scegliere Personalizzato per usare opzioni di ottimizzazione specifiche. Imposta /Od
, /O1
, /O2
.
Scelte
- Personalizzato: consente di personalizzare l'ottimizzazione.
- Disabilitato: disabilita l'ottimizzazione.
- Ottimizzazione massima (dimensioni favori) - Equivalente a
/Os /Oy /Ob2 /Gs /GF /Gy
- Ottimizzazione massima (velocità di favore) - Equivalente a
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy
- Ottimizzazioni (favor speed) - Equivalente a
/Oi /Ot /Oy /Ob2
Espansione della funzione inline
Selezionare il livello di espansione della funzione inline per la compilazione. Imposta /Ob
.
Scelte
- Predefinita
- Disabilitato : disabilita l'espansione inline, attiva per impostazione predefinita.
- Solo __inline : espande solo le funzioni contrassegnate come
inline
,__forceinline
o__inline
. In alternativa, in una funzione membro C++, definita all'interno di una dichiarazione di classe. - Qualsiasi funzione adatta : espande le funzioni contrassegnate come
inline
o__inline
e qualsiasi altra funzione scelta dal compilatore. L'espansione si verifica a discrezione del compilatore, spesso definita inlining automatico.
Abilitare funzioni intrinseche
Abilita le funzioni intrinseche. L'uso di funzioni intrinseche genera più velocemente codice, ma possibilmente più grande. Imposta /Oi
.
Favorisce dimensioni o velocità
Se favorire la dimensione del codice o la velocità del codice; 'Ottimizzazione globale' deve essere attivato. Imposta /Ot
, /Os
.
Scelte
- Prediligi codice di piccole dimensioni : riduce al minimo le dimensioni di EXEs e DLL indicando al compilatore di favorire le dimensioni rispetto alla velocità.
- Prediligi il codice rapido: ottimizza la velocità di EXEs e DLL indicando al compilatore di favorire la velocità rispetto alle dimensioni. Questo valore è il valore predefinito.
- Nessuno dei due : nessuna dimensione e ottimizzazione della velocità.
Omettere puntatori cornice
Disabilita la creazione di puntatori ai frame nello stack di chiamate.
Abilitare ottimizzazioni fiber-safe
Abilita l'ottimizzazione dello spazio di memoria quando si usa fibre e l'accesso all'archiviazione locale del thread. Imposta /GT
.
Con ottimizzazione intero programma
Abilita le ottimizzazioni tra moduli ritardando la generazione del codice per collegare il tempo. Richiede l'opzione linker Link Time Code Generation( Generazione del codice tempo di collegamento). Imposta /GL
.
Proprietà del preprocessore C/C++
Definizioni del preprocessore
Definisce i simboli di pre-elaborazione per il file origine.
Rimuovi definizioni per il preprocessore
Rimuove una o più definizioni per il preprocessore. Imposta /U
.
Rimuovi tutte le definizioni per il preprocessore
Rimuove tutti i valori precedentemente definiti per il preprocessore. Imposta /u
.
Ignora percorsi di inclusione standard
Impedisce al compilatore di cercare i file di inclusione nelle directory specificate nelle variabili di ambiente INCLUDE.
Pre-elaborazione in un file
Pre-elabora i file di origine C e C++ e scrive l'output pre-elaborato in un file. Questa opzione elimina la compilazione e non produce un .obj
file.
Pre-elaborazione Elimina numeri di riga
Pre-elaborazione senza direttive #line.
Mantieni commenti
Elimina la strip dei commenti dal codice sorgente; richiede l'impostazione di almeno una delle opzioni di pre-elaborazione. Imposta /C
.
Proprietà di generazione codice C/C++
Abilitare il pool di stringhe
Il compilatore crea una sola copia di sola lettura di stringhe identiche nell'immagine del programma. Genera programmi più piccoli, un'ottimizzazione denominata pool di stringhe. /O1
, /O2
e /ZI
imposta /GF
automaticamente l'opzione .
Abilitare la ricompilazione minima
Abilita la ricompilazione minima, che determina se ricompilare i file di origine C++ che includono definizioni di classe C++ modificate, archiviate nei file di intestazione .h
.
Abilita eccezioni C++
Specifica il modello di gestione delle eccezioni che deve essere usato dal compilatore.
Scelte
- Sì con eccezioni SEH: modello di gestione delle eccezioni che rileva le eccezioni asincrone (strutturate) e sincrone (C++). Imposta
/EHa
. - Sì : modello di gestione delle eccezioni che rileva solo le eccezioni C++ e indica al compilatore di presupporre che le funzioni C extern non generino mai un'eccezione C++. Imposta
/EHsc
. - Sì con funzioni C extern: il modello di gestione delle eccezioni che intercetta solo le eccezioni C++ e indica al compilatore di presupporre che le funzioni C extern generino un'eccezione. Imposta
/EHs
. - No: nessuna gestione delle eccezioni.
Controllo dei tipi più piccoli
Abilitare il controllo della conversione in tipi più piccoli, incompatibili con qualsiasi tipo di ottimizzazione diverso dal debug. Imposta /RTCc
.
Controlli di runtime di base
Abilitare i controlli degli errori di runtime di base, incompatibili con qualsiasi tipo di ottimizzazione diverso dal debug. Imposta /RTCs
, /RTCu
, /RTC1
.
Scelte
- Stack Frame : abilita il controllo degli errori di runtime dello stack frame.
- Variabili non inizializzate: segnala quando viene usata una variabile senza essere stata inizializzata.
- Entrambi (/RTC1, equiv. a /RTCsu) - Equivalente di
/RTCsu
. - Impostazione predefinita : controlli di runtime predefiniti.
Libreria di runtime
Specifica la libreria di runtime per il collegamento. Imposta /MT
, /MTd
, /MD
, . /MDd
Scelte
- Multithreading : fa sì che l'applicazione usi la versione multithread statica della libreria di runtime.
- Debug multithread: definisce
_DEBUG
e_MT
. Questa opzione fa in modo che il compilatore inserisca il nomeLIBCMTD.lib
della libreria nel.obj
file in modo che il linker useràLIBCMTD.lib
per risolvere i simboli esterni. - DLL multithread: fa sì che l'applicazione usi la versione specifica del multithread e della DLL della libreria di runtime. Definisce
_MT
e_DLL
fa in modo che il compilatore inserisca il nome della libreria MSVCRT.lib nel.obj
file. - DLL di debug multithread: definisce
_DEBUG
,_MT
e_DLL
e fa in modo che l'applicazione usi la versione specifica del debug multithread e della DLL della libreria di runtime. Fa inoltre in modo che il compilatore inserisca il nomeMSVCRTD.lib
della libreria nel.obj
file.
Allineamento membri struct
Specifica i limiti di 1, 2, 4 o 8 byte per l'allineamento dei membri dello struct. Imposta /Zp
.
Scelte
- 1 Byte - Comprime le strutture sui limiti a un byte . Uguale a
/Zp
. - 2 Byte : crea pacchetti di strutture su limiti a due byte.
- 4 byte: comprime le strutture su limiti a quattro byte.
- 8 byte : include strutture su limiti a otto byte (impostazione predefinita).
- 16 byte : crea pacchetti di strutture su limiti di sedici byte.
- Impostazione predefinita : impostazioni di allineamento predefinite.
Controllo di sicurezza
Il controllo di sicurezza facilita il rilevamento di sovraccarichi del buffer di stack, un attacco comunemente tentato alla sicurezza di un programma.
Scelte
- Disabilita controllo di sicurezza: consente di disabilitare il controllo di sicurezza. Imposta
/GS-
. - Abilita controllo di sicurezza: consente di abilitare il controllo di sicurezza. Imposta
/GS
.
Protezione del flusso di controllo
Il controllo di sicurezza della protezione consente di rilevare i tentativi di invio a blocchi di codice non validi.
Scelte
- Sì : abilitare il controllo della sicurezza con i set
/guard:cf
di protezione . - No
Abilita collegamento a livello di funzione
Consente al compilatore di assemblare le singole funzioni sotto forma di funzioni incluse nel pacchetto (COMDAT). Impostazione necessaria per le operazioni di modifica e continuazione. Imposta /Gy
.
Abilitare la generazione di codice parallelo
Consente al compilatore di generare codice parallelo per i cicli identificati usando #pragma loop(hint_parallel[(n)])
quando l'ottimizzazione è abilitata.
Abilitare il set di istruzioni avanzato
Abilitare l'uso delle istruzioni disponibili nei processori che supportano set di istruzioni avanzati. Ad esempio, i miglioramenti di SSE, SSE2, AVX e AVX2 a IA-32. Inoltre, i miglioramenti di AVX e AVX2 a x64. Attualmente /arch:SSE
e /arch:SSE2
sono disponibili solo quando si compila per l'architettura x86. Se non viene specificata alcuna opzione, il compilatore usa le istruzioni disponibili nei processori che supportano SSE2. L'uso di istruzioni avanzate può essere disabilitato con /arch:IA32
. Per altre informazioni, vedere/arch (x86)
, /arch (x64)
, /arch (ARM64)
e /arch (ARM)
.
Scelte
- Streaming di estensioni SIMD : estensioni SIMD in streaming. Imposta
/arch:SSE
- Streaming SIMD Extensions 2 - Streaming SIMD Extensions 2( Streaming SIMD Extensions 2). Imposta
/arch:SSE2
- Estensioni vettoriali avanzate - Estensioni vettoriali avanzate. Imposta
/arch:AVX
- Estensioni vettoriali avanzate 2 - Estensioni vettoriali avanzate 2. Imposta
/arch:AVX2
- Nessuna istruzione avanzata: nessuna istruzione avanzata. Imposta
/arch:IA32
- Non impostato : non impostato.
Modello a virgola mobile
Imposta il modello a virgola mobile. Imposta /fp:precise
, /fp:strict
, /fp:fast
.
Scelte
- Preciso - Impostazione predefinita. Migliora la coerenza dei test a virgola mobile per verificare l'uguaglianza e la disuguaglianza.
- Strict : modello a virgola mobile più rigoroso.
/fp:strict
fp_contract
fa sì che sia OFF efenv_access
che sia ON./fp:except
è implicito e può essere disabilitato specificando in modo esplicito/fp:except-
. Se usato con/fp:except-
,/fp:strict
applica una semantica a virgola mobile rigorosa ma senza rispetto per gli eventi eccezionali. - Veloce : crea il codice più veloce nella maggior parte dei casi.
Abilitare le eccezioni a virgola mobile
Modello di eccezione a virgola mobile affidabile. Le eccezioni verranno generate immediatamente dopo l'attivazione. Imposta /fp:except
.
Creare un'immagine hotpatchable
Quando hotpatching è attivo, il compilatore garantisce che la prima istruzione di ogni funzione sia di due byte, come richiesto per l'applicazione di patch ad accesso frequente. Imposta /hotpatch
.
Mitigazione spectre
Mitigazioni spectre per CVE 2017-5753. Imposta /Qspectre
.
Scelte
- Abilitata - Abilitare la funzionalità di mitigazione Spectre per CVE 2017-5753
- Disabilitato : non impostato.
Proprietà del linguaggio C/C++
Disabilitare le estensioni del linguaggio
Elimina o abilita le estensioni del linguaggio. Imposta /Za
.
Considerare WChar_t come tipo predefinito
Se specificato, il tipo diventa un tipo wchar_t
nativo che esegue il mapping a __wchar_t
nello stesso modo in cui short
viene eseguito il mapping a __int16
. /Zc:wchar_t
è attivato per impostazione predefinita.
Forza conformità nell'ambito del ciclo For
Implementa il comportamento C++ standard per i cicli di for
istruzione con le estensioni Microsoft. Imposta /Za
, /Ze
(disabilita le estensioni del linguaggio. /Zc:forScope
è attivato per impostazione predefinita.
Rimuovere codice e dati non referenziati
Se specificato, il compilatore non genera più informazioni sui simboli per il codice e i dati non referenziati.
Applicare regole di conversione dei tipi
Usato per identificare un tipo di riferimento rvalue come risultato di un'operazione di cast in base allo standard C++11.
Abilita informazioni sui tipi in fase di esecuzione
Aggiunge il codice per controllare i tipi di oggetto C++ in fase di esecuzione (informazioni sul tipo di runtime o RTTI). Imposta /GR
, /GR-
.
Aprire il supporto mp
Abilita le estensioni del linguaggio OpenMP 2.0. Imposta /openmp
.
Standard del linguaggio C++
Determina lo standard del linguaggio C++ abilitato dal compilatore. Il valore predefinito non imposta un'opzione standard, quindi il compilatore usa l'impostazione predefinita C++14. Se si seleziona un valore specifico, l'opzione del compilatore corrispondente /std
è set.md).
Scelte
- Impostazione predefinita (ISO C++14 Standard)
- ISO C++14 Standard (/std:c++14)
- ISO C++17 Standard (/std:c++17)
- ISO C++20 Standard (/std:c++20)
- Anteprima- Funzionalità della bozza di lavoro C++ più recente (/std:c++latest)
Standard del linguaggio C
Determina lo standard del linguaggio C abilitato dal compilatore. Il valore predefinito non imposta un'opzione standard, quindi il compilatore usa l'impostazione MSVC legacy predefinita. Se si seleziona un valore specifico, l'opzione del compilatore corrispondente /std
è set.md).
Scelte
- Impostazione predefinita (MSVC legacy)
- ISO C11 Standard (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
Modalità di conformità
Abilita o elimina la modalità di conformità. Imposta /permissive-
.
Abilitare moduli della libreria standard C++ sperimentale
Supporto sperimentale per i moduli TS e libreria standard dei moduli C++.
Compilare moduli della libreria standard ISO C++23
A partire da Visual Studio 17.6, quando questa proprietà è abilitata e C++ Language Standard è impostata su /std:c++latest
, i progetti Visual C++ trovano e compilano automaticamente moduli della libreria standard ISO C++23. In questo modo è possibile o import std
import std.compat
nel codice C++.
Proprietà intestazioni precompilate C/C++
Crea/Usa intestazione precompilata
Abilita la creazione o l'uso di un'intestazione precompilata durante la compilazione. Imposta /Yc
, /Yu
.
Scelte
- Create : indica al compilatore di creare un file di intestazione precompilato (
.pch
) che rappresenta lo stato della compilazione in un determinato punto. - Use : indica al compilatore di usare un file di intestazione precompilato esistente (
.pch
) nella compilazione corrente. - Not Using Precompiled Headers (Non uso di intestazioni precompilate) - Non usando intestazioni precompilate.
File di intestazione precompilato
Specifica il nome del file di intestazione da utilizzare durante la creazione o l'uso di un file di intestazione precompilato. Imposta /Yc
, /Yu
.
File di output dell'intestazione precompilato
Specifica il percorso o il nome del file di intestazione precompilato generato. Imposta /Fp
.
Proprietà dei file di output C/C++
Espandi origine con attributi
Creare un file di elenco con attributi espansi inseriti nel file di origine. Imposta /Fx
.
Output assembler
Specifica il contenuto del file di output in linguaggio assembly. Imposta /FA
, /FAc
, /FAs
, . /FAcs
Scelte
- Nessuna inserzione- Nessuna inserzione.
- Listato solo assembly - Codice assembly;
.asm
- Assembly con codice computer - Codice computer e assembly;
.cod
- Assembly con codice sorgente - Codice sorgente e codice assembly;
.asm
- Assembly, Codice computer e origine - Assembly, codice computer e codice sorgente;
.cod
Usare Unicode per la presentazione dell'assembler
Fa sì che il file di output venga creato in formato UTF-8.
Percorso elenco ASM
Specifica il percorso o il nome relativi per il file di listato ASM; può essere il nome di file o directory. Imposta /Fa
.
Nome file oggetto
Consente di specificare un nome usato per eseguire l'override del nome del file oggetto predefinito. Può essere un nome di file o di directory. Imposta /Fo
.
Nome file del database di programma
Specifica un nome per un file PDB generato dal compilatore; specifica anche il nome di base per il file IDB generato dal compilatore richiesto; può essere il nome di file o directory. Imposta /Fd
.
Generare file di documentazione XML
Specifica che il compilatore deve generare file di commento della documentazione XML (. XDC). Imposta /doc
.
Nome file della documentazione XML
Specifica il nome dei file di documentazione XML generati; può essere il nome di file o directory. Imposta /doc:
<il nome>.
Proprietà di esplorazione delle informazioni C/C++
Abilitare le informazioni di esplorazione
Specifica il livello di informazioni di esplorazione nel .bsc
file. Imposta /FR
.
Esplora file di informazioni
Specifica il nome facoltativo per il file di informazioni del browser. Imposta /FR
<il nome>.
Include esterne
Trattare i file inclusi con parentesi angolari come esterni
Specifica se trattare i file inclusi tra parentesi angolari come esterni. Impostare questa proprietà su Sì per impostare l'opzione del /external:anglebrackets
compilatore.
Livello di avviso intestazione esterna
Selezionare il modo in cui si vuole che il compilatore sia in merito agli errori di codice nelle intestazioni esterne. Questa proprietà imposta l'opzione del /external:Wn
compilatore. Se questo valore è impostato su Eredita livello avviso progetto o impostazione predefinita, le altre /external
opzioni vengono ignorate.
Diagnostica dei modelli nelle intestazioni esterne
Specifica se valutare il livello di avviso in una catena di creazione di istanze del modello. Impostare questa proprietà su Sì per impostare l'opzione del /external:templates-
compilatore.
Disabilitare l'analisi del codice per le intestazioni esterne
Disabilita l'analisi del codice per le intestazioni esterne. Imposta l'opzione del /analyze:external-
compilatore.
Set di regole di analisi per intestazioni esterne
Specifica un override del set di regole di analisi del codice per le intestazioni esterne. Se non specificato, viene utilizzata l'impostazione Analisi codice. Imposta l'opzione del /analyze:external:ruleset path
compilatore.
Proprietà avanzate C/C++
Convenzione di chiamata
Selezionare la convenzione di chiamata predefinita per l'applicazione (può essere sottoposta a override dalla funzione). Imposta /Gd
, /Gr
, /Gz
, . /Gv
Scelte
__cdecl
- Specifica la__cdecl
convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate__stdcall
o__fastcall
.__fastcall
- Specifica la__fastcall
convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate__cdecl
o__stdcall
. Tutte le funzioni__fastcall
devono avere prototipi.__stdcall
- Specifica la__stdcall
convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate__cdecl
o__fastcall
. Tutte le funzioni__stdcall
devono avere prototipi.__vectorcall
- Specifica la convenzione di__vectorcall
chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate come__cdecl
,__fastcall
o__stdcall
. Tutte le funzioni__vectorcall
devono avere prototipi.
Compila come
Selezionare l'opzione compila lingua per i file di origine. Imposta /TC
le opzioni ,/TP
, /interface, /internalPartition
o /exportHeader
.
Scelte
- Predefinita: impostazione predefinita.
- Compila come codice C (
/TC
): compila i file di origine specificati come codice C. Per impostazione predefinita, i file con estensione.c
vengono compilati come C. - Compila come codice C++ (
/TP
): compila i file di origine specificati come codice C++. Per impostazione predefinita, tutti i file di origine che non dispongono di un'estensione.c
,.ixx
.cppm
,.h
o non sono compilati come C++. - Compila come codice del modulo C++ (
/interface
): compila i file di origine specificati come codice del modulo C++. Per impostazione predefinita, i file con un'estensione.ixx
o.cppm
vengono compilati come codice del modulo C++. - Compila come partizione interna del modulo C++ (
/internalPartition
): compila i file di origine specificati come partizione interna del modulo C++. - Compila come unità di intestazione C++ (
/exportHeader
): compila i file di origine specificati come unità di intestazione C++. Per impostazione predefinita, i file con estensione.h
o nessuna estensione vengono compilati come unità di intestazione.
Disabilitare avvisi specifici
Disabilitare i numeri di avviso specificati. Inserire i numeri di avviso in un elenco delimitato da punti e virgola. Imposta /wd
<il numero>.
File di inclusione forzato
Uno o più file di inclusione il cui uso è forzato. Imposta /FI
<il nome>.
File #using forzato
Specifica uno o più file #using forzati. Imposta /FU
<il nome>.
Mostra inclusioni
Indica al compilatore di generare un elenco dei file di inclusione. Imposta /showIncludes
.
Usare percorsi completi
Usare percorsi completi nei messaggi di diagnostica. Imposta /FC
.
Omettere il nome predefinito della libreria
Non include nomi di libreria predefiniti nei .obj
file. Imposta /Zl
.
Segnalazione errori interni del compilatore
Nota
Questa opzione è deprecata. A partire da Windows Vista, la segnalazione degli errori è controllata dalle impostazioni di Segnalazione errori Windows (WER).
Considerare avvisi specifici come errori
Considera l'avviso del compilatore specifico come un errore in cui n è un avviso del compilatore.
Opzioni aggiuntive
Opzioni aggiuntive.