Condividi tramite


Impostare il compilatore e le proprietà di compilazione

Nell'IDE di Visual Studio è possibile visualizzare e modificare le proprietà necessarie per compilare e compilare un progetto. Queste informazioni includono il nome dell'applicazione, l'estensione (ad esempio DLL, LIB, EXE), le opzioni del compilatore, le opzioni del linker, le impostazioni del debugger e i passaggi di compilazione personalizzati.

È possibile visualizzare e modificare queste proprietà usando le pagine delle proprietà. Per accedere alle pagine delle proprietà, scegliere Progetto>nome-progetto Proprietà dal menu principale oppure fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà.

Proprietà predefinite

Quando si crea un progetto, il sistema assegna i valori per varie proprietà. Le impostazioni predefinite variano leggermente a seconda del tipo di progetto e delle opzioni selezionate nella procedura guidata app. Ad esempio, un progetto ATL (Active Template Library) ha proprietà correlate ai file MIDL (Microsoft Interface Definition Language), ma queste proprietà sono assenti in un'applicazione console di base. Le proprietà predefinite vengono visualizzate nel riquadro Avanzate della finestra Pagine delle proprietà :

Screenshot della finestra di dialogo Delle proprietà del progetto di Visual Studio con il riquadro Avanzate selezionato. Le proprietà, ad esempio Uso di MFC, Set di caratteri e così via, vengono evidenziate.

Applicare proprietà alle configurazioni di build e alle piattaforme target.

Alcune proprietà, ad esempio il nome dell'applicazione, si applicano a tutte le varianti di compilazione e alle piattaforme di destinazione, sia che si tratti di una build di debug o versione. La maggior parte delle proprietà sono tuttavia dipendenti dalla configurazione. Per generare il codice corretto, il compilatore deve conoscere sia la piattaforma specifica su cui viene eseguito il programma che le opzioni specifiche del compilatore usare. Pertanto, quando si imposta una proprietà, è importante prestare attenzione alla configurazione e alla piattaforma a cui applicare il nuovo valore. Deve essere applicata solo alle build Win32 di debug o deve essere applicata anche a Debug ARM64 e Debug x64? Ad esempio, la proprietà Ottimizzazione viene impostata automaticamente su Ottimizza velocità (/O2) in una configurazione per la versione, ma è disabilitata nella configurazione per il debug.

È sempre possibile visualizzare e modificare la configurazione e la piattaforma a cui applicare un valore di proprietà. La figura seguente mostra le pagine delle proprietà con i controlli informazioni sulla configurazione e sulla piattaforma nella parte superiore. Quando la proprietà Optimization è impostata qui, si applica solo alle build win32 di debug, la configurazione attualmente attiva, come illustrato dalle frecce rosse.

Screenshot della finestra di dialogo delle Pagine delle Proprietà di Visual Studio.

La pagina è aperta a C/C++, Ottimizzazione. L'impostazione Ottimizzazione è impostata su Disabilitato (/Od), che è evidenziata. Una freccia evidenzia la relazione tra l'impostazione di Configurazione nella pagina delle proprietà del progetto, che è impostata su Active(Debug), e l'impostazione nel menu a discesa della configurazione della Soluzione sulla barra degli strumenti, che è impostata su Debug. Un'altra freccia indica la relazione tra l'impostazione della Piattaforma nella pagina delle proprietà del progetto, che è impostata su Attivo(Win32), e l'impostazione nel menu a discesa Piattaforma della soluzione sulla barra degli strumenti, che è impostata su x86.

Nella figura seguente viene illustrata la pagina delle proprietà dello stesso progetto, ma la configurazione è stata modificata su Release. Si noti il valore diverso della proprietà Ottimizzazione. Si noti anche che la configurazione attiva è ancora Debug. È possibile impostare proprietà per qualsiasi configurazione, non necessariamente per quella attiva.

Screenshot della finestra di dialogo delle Pagine delle proprietà del progetto Visual Studio. Il menu a discesa Configurazione è evidenziato e impostato su Release. L'impostazione di ottimizzazione è impostata su Massimizza velocità slash O2.

Piattaforme di destinazione

La piattaforma di destinazione fa riferimento al tipo di dispositivo e al sistema operativo in cui viene eseguito l'eseguibile. È possibile compilare un progetto per più piattaforme. Le piattaforme di destinazione disponibili per i progetti C++ dipendono dal tipo di progetto. Includono ma non sono limitati a Win32, x64, ARM, ARM64, Android e iOS. La piattaforma di destinazione x86 che si può incontrare in Configuration Manager è identica a Win32 nei progetti C++ nativi. Win32 significa Windows a 32 bit e x64 significa Windows a 64 bit. Per altre informazioni su queste due piattaforme, vedere Running 32-bit applications (Esecuzione di applicazioni a 32 bit).

Il valore della piattaforma di destinazione della CPU visualizzato in Configuration Manager non ha alcun effetto sui progetti C++ nativi. È rilevante solo per C++/CLI e altri tipi di progetto .NET. Per altre informazioni, vedere /CLRIMAGETYPE (Specificare il tipo di immagine CLR).

Per altre informazioni sull'impostazione delle proprietà per una compilazione di debug, vedere:

Opzioni del compilatore e del linker C++

Le opzioni del compilatore e del linker C++ si trovano nei nodi C/C++ e Linker nel riquadro sinistro in Proprietà di configurazione. Queste opzioni si traducono direttamente in opzioni della riga di comando passate al compilatore. Per leggere la documentazione su un'opzione specifica, selezionare l'opzione nel riquadro centrale e premere F1. In alternativa, è possibile esplorare la documentazione per tutte le opzioni disponibili in Opzioni del compilatore MSVC e opzioni del linker MSVC.

Nella finestra di dialogo Pagine delle proprietà vengono visualizzate solo le pagine delle proprietà rilevanti per il progetto corrente. Ad esempio, se il progetto non ha un .idl file, la pagina delle proprietà MIDL non viene visualizzata. Per altre informazioni sulle impostazioni in ogni pagina delle proprietà, vedere Pagine delle proprietà (C++).

Valori di directory e percorso

MSBuild supporta l'uso di costanti in fase di compilazione per determinati valori stringa, ad esempio directory e percorsi, denominati macro. Una macro può fare riferimento a un valore definito da Visual Studio o dal sistema MSBuild o da un valore definito dall'utente. Le macro hanno un aspetto come $(macro-name) o %(item-macro-name). Vengono esposte nelle pagine delle proprietà, in cui è possibile farvi riferimento e modificarle usando l'editor delle proprietà. Usare macro anziché valori statici, ad esempio percorsi di directory. Le macro semplificano la condivisione delle impostazioni delle proprietà tra computer e versioni di Visual Studio. È anche possibile assicurarsi che le impostazioni del progetto partecipino correttamente all'ereditarietà delle proprietà.

La figura seguente mostra le pagine delle proprietà per un progetto Visual Studio C++. Nel riquadro sinistro viene selezionata la regola Directory DI VC++ e nel riquadro destro sono elencatele proprietà associate a tale regola. I valori delle proprietà sono spesso macro, ad esempio $(VC_SourcePath):

Screenshot della finestra di dialogo Pagine delle proprietà di Visual Studio per le regole per varie directory.

La pagina VC plus Directories è aperta, con proprietà per le regole directory DI VC++. Una regola di esempio è Directory di origine, impostata su $(VC_SourcePath). Esistono regole per le directory di inclusione, le directory di libreria, le directory eseguibili e così via.

È possibile utilizzare Editor proprietà per visualizzare i valori di tutte le macro disponibili.

Macro predefinite

  • Macro globali
    Le macro globali si applicano a tutti gli elementi di una configurazione del progetto. Una macro globale ha la sintassi $(name). Un esempio di macro globale è $(VCInstallDir), che archivia la directory radice dell'installazione di Visual Studio. Una macro globale corrisponde a PropertyGroup in MSBuild.

  • Macro di elementi
    Le macro degli elementi hanno la sintassi %(name). Per un file, una macro di elementi si applica solo a tale file. Ad esempio, è possibile usare %(AdditionalIncludeDirectories) per specificare directory di inclusione che si applicano solo a un file specifico. Questo tipo di macro di elemento corrisponde ai metadati ItemGroup in MSBuild. Se utilizzata nel contesto di una configurazione di progetto, una macro di elementi si applica a tutti i file di un determinato tipo. Ad esempio, nella proprietà di configurazione Definizioni preprocessore di C/C++ può essere accettata una macro di elemento %(PreprocessorDefinitions) che si applica a tutti i file con estensione cpp nel progetto. Questo tipo di macro di elemento corrisponde ai metadati ItemDefinitionGroup in MSBuild. Per altre informazioni, vedere Definizioni di elementi.

Macro definite dall'utente

È possibile creare macro definite dall'utente da usare come variabili nelle build di progetto. Ad esempio, si potrebbe creare una macro definita dall'utente per fornire un valore a un'istruzione di compilazione personalizzata o a uno strumento di compilazione personalizzato. Una macro definita dall'utente è una coppia nome-valore. In un file di progetto usare la $(name) notazione per accedere al valore.

Una macro definita dall'utente viene archiviata in una finestra delle proprietà. Se il progetto non contiene già una finestra delle proprietà, è possibile crearne una seguendo la procedura descritta in Condividere o riutilizzare le impostazioni del progetto di Visual Studio.

Per creare una macro definita dall'utente

  1. Aprire la finestra Gestione proprietà. Sulla barra dei menu selezionare Visualizza> altreproprietà diWindows>. Aprire il menu di scelta rapida per una finestra delle proprietà (il nome termina in .user) e quindi scegliere Proprietà. Si apre la finestra di dialogo Pagine delle proprietà per la scheda delle proprietà.

  2. Nel riquadro sinistro della finestra selezionare Macro utente. Nel riquadro destro scegliere il pulsante Aggiungi macro per aprire la finestra di dialogo Aggiungi macro utente.

  3. Nella finestra di dialogo specificare un nome e un valore per la macro. Se possibile, selezionare la casella di controllo Imposta questa macro come variabile di ambiente nell'ambiente di compilazione.

Editor di proprietà

È possibile usare l'Editor della proprietà per modificare alcune proprietà stringa e selezionare le macro come valori. Per accedere all'Editor delle proprietà, selezionare una proprietà in una pagina delle proprietà, quindi scegliere il pulsante con la freccia verso il basso sulla destra. Se l'elenco a discesa contiene <Modifica>, è possibile sceglierlo per visualizzare l'Editor proprietà per tale proprietà.

Screenshot della pagina delle proprietà del progetto di Visual Studio per le Directory di VC++.

L'editor delle proprietà per l'impostazione Directory di inclusione è aperto. Mostra il valore valutato per le directory di inclusione, ovvero C:\Programmi(x86)\Microsoft Visual Studio 14.0\VC\Include. Mostra i due valori ereditati: $(VC_IncludePath) e $(WindowsSDK_IncludePath). La casella "Eredita dai valori predefiniti del genitore o del progetto" è selezionata.

In Editor proprietà è possibile scegliere il pulsante Macro per visualizzare le macro disponibili e i relativi valori correnti. La figura seguente illustra l'Editor delle proprietà per la proprietà Directory di inclusione aggiuntive dopo che è stato scelto il pulsante Macro. Quando si seleziona la casella di controllo Eredita dai valori predefiniti del genitore o progetto e si aggiunge un nuovo valore, viene aggiunto a qualsiasi valore attualmente ereditato. Se si deseleziona la casella di controllo, il nuovo valore sostituisce i valori ereditati. Nella maggior parte dei casi lasciare selezionata la casella di controllo.

Screenshot della finestra di dialogo dell'Editor delle proprietà dopo aver selezionato il pulsante Macro.

L'editor delle proprietà per le directory di inclusione è aperto. Il valore valutato viene visualizzato insieme ai valori ereditati. Una casella di riepilogo contiene varie macro e i relativi valori, ad esempio $(CharacterSet) impostato su Unicode.

Aggiungere una directory di include all'insieme di directory predefinite

Quando si aggiunge una directory di inclusione a un progetto, è importante non eseguire l'override di tutte le directory predefinite. Il modo corretto per aggiungere una directory consiste nell'aggiungere il nuovo percorso, ad esempio C:\MyNewIncludeDir\, e quindi aggiungere la $(IncludePath) macro al valore della proprietà.

Navigare e cercare rapidamente tutte le proprietà

La pagina delle proprietà Tutte le opzioni (nel nodo Proprietà>di configurazione C/C++ nella finestra di dialogo Pagine delle proprietà) consente di esplorare e cercare rapidamente le proprietà disponibili nel contesto corrente. Include una casella di ricerca speciale e una sintassi semplice per filtrare facilmente i risultati:

  • Nessun prefisso: cerca solo nei nomi delle proprietà (sottostringa senza distinzione tra maiuscole e minuscole).

  • '/' o '-': ricerca solo nelle opzioni del compilatore (prefisso senza distinzione tra maiuscole e minuscole).

  • v: ricerca solo nei valori (sottostringa senza distinzione tra maiuscole e minuscole).

Impostare le variabili di ambiente per una compilazione

Il compilatore MSVC (cl.exe) riconosce determinate variabili di ambiente, in particolare LIB, LIBPATH, PATHe INCLUDE. Quando si esegue la compilazione con l'IDE, le proprietà impostate nella pagina delle proprietà Directory di VC++ vengono usate per impostare tali variabili di ambiente. Se i valori di LIB, LIBPATH e INCLUDE sono già stati impostati, ad esempio da un Prompt dei Comandi Sviluppatori, vengono sostituiti con i valori delle proprietà MSBuild corrispondenti. La compilazione antepone quindi il valore della proprietà delle directory eseguibili di VC++ a PATH. È possibile impostare una variabile di ambiente definita dall'utente creando una macro definita dall'utente e quindi selezionando la casella Imposta questa macro come variabile di ambiente nell'ambiente di compilazione.

Impostare le variabili di ambiente per una sessione di debug

Nel riquadro sinistro della finestra di dialogo Pagine delle proprietà del progetto espandere il nodo Proprietà di configurazione e selezionare Debug.

Nel riquadro destro modificare le impostazioni del progetto Ambiente o Unisci ambiente e quindi scegliere OK.

Articoli in questa sezione

Vedi anche