Progetti C/C++ e sistemi di compilazione in Visual Studio

È possibile usare Visual Studio per modificare, compilare e compilare qualsiasi codebase C++ con supporto IntelliSense completo senza dover convertire il codice in un progetto di Visual Studio o compilarlo con il set di strumenti MSVC. Ad esempio, è possibile modificare un progetto CMake multipiattaforma in Visual Studio in un computer Windows, quindi compilarlo per Linux usando g++ in un computer Linux remoto.

Compilazione C++

Per compilare un programma C++ significa compilare il codice sorgente da uno o più file e quindi collegare tali file in un file eseguibile (.exe), una libreria di caricamento dinamico (dll) o una libreria statica (.lib).

La compilazione C++ di base prevede tre passaggi principali:

  • Il preprocessore C++ trasforma tutte le definizioni di #directives e macro in ogni file di origine. Verrà creata un'unità di conversione.
  • Il compilatore C++ compila ogni unità di conversione in file oggetto (obj), applicando le opzioni del compilatore impostate.
  • Il linker unisce i file oggetto in un singolo eseguibile, applicando le opzioni del linker impostate.

Set di strumenti MSVC

Il compilatore, il linker, le librerie standard e le utilità correlate di Microsoft C++ costituiscono il set di strumenti del compilatore MSVC (detto anche toolchain o "strumenti di compilazione"). Questi sono inclusi in Visual Studio. È anche possibile scaricare e usare il set di strumenti da riga di comando come pacchetto autonomo gratuito. Per altre informazioni, vedere Build Tools per Visual Studio nella pagina Download di Visual Studio.

È possibile compilare programmi semplici richiamando il compilatore MSVC (cl.exe) direttamente dalla riga di comando. Il comando seguente accetta un singolo file di codice sorgente e richiama cl.exe per compilare un eseguibile denominato hello.exe:

cl /EHsc hello.cpp

Qui il compilatore (cl.exe) richiama automaticamente il preprocessore C++ e il linker per produrre il file di output finale. Per altre informazioni, vedere Compilazione nella riga di comando.

Compilare sistemi e progetti

La maggior parte dei programmi reali usa un sistema di compilazione per gestire le complessità di compilazione di più file di origine per più configurazioni (debug e versione), più piattaforme (x86, x64, ARM e così via), passaggi di compilazione personalizzati e persino più eseguibili che devono essere compilati in un determinato ordine. Le impostazioni vengono create in uno o più file di configurazione della compilazione e il sistema di compilazione accetta tale file come input prima di richiamare il compilatore. Il set di file di codice sorgente e i file di configurazione di compilazione necessari per compilare un file eseguibile è denominato progetto.

L'elenco seguente mostra varie opzioni per i progetti di Visual Studio - C++:

  • creare un progetto di Visual Studio usando l'IDE di Visual Studio e configurarlo usando le pagine delle proprietà. I progetti di Visual Studio producono programmi eseguiti in Windows. Per una panoramica, vedere Compilazione e compilazione nella documentazione di Visual Studio.

  • aprire una cartella contenente un file CMakeLists.txt. Il supporto di CMake è integrato in Visual Studio. È possibile usare l'IDE per modificare, testare ed eseguire il debug senza modificare i file CMake in alcun modo. In questo modo è possibile lavorare nello stesso progetto CMake di altri utenti che potrebbero usare editor diversi. CMake è l'approccio consigliato per lo sviluppo multipiattaforma. Per altre informazioni, vedere Progetti CMake.

  • aprire una cartella separata dei file di origine senza file di progetto. Visual Studio userà l'euristica per compilare i file. Si tratta di un modo semplice per compilare ed eseguire applicazioni console di piccole dimensioni. Per altre informazioni, vedere Open Folder projects.For more information, see Open Folder projects.

  • aprire una cartella contenente un makefile o qualsiasi altro file di configurazione del sistema di compilazione. È possibile configurare Visual Studio per richiamare qualsiasi comando di compilazione arbitrario aggiungendo file JSON alla cartella. Per altre informazioni, vedere Open Folder projects.For more information, see Open Folder projects.

  • Aprire un makefile di Windows in Visual Studio. Per altre informazioni, vedere Informazioni di riferimento su NMAKE.

MSBuild dalla riga di comando

È possibile richiamare MSBuild dalla riga di comando passandolo a un file con estensione vcxproj insieme alle opzioni della riga di comando. Questo approccio richiede una buona conoscenza di MSBuild ed è consigliato solo quando necessario. Per altre informazioni, vedere MSBuild.

In questa sezione

Progetti di Visual Studio
Come creare, configurare e compilare progetti C++ in Visual Studio usando il sistema di compilazione nativo (MSBuild).

Progetti CMake
Come scrivere codice, compilare e distribuire progetti CMake in Visual Studio.

Progetti Apri cartella
Come usare Visual Studio per scrivere codice, compilare e distribuire progetti C++ basati su qualsiasi sistema di compilazione arbitrario o su nessun sistema di compilazione.

Build di versione
Come creare e risolvere i problemi delle build di versione ottimizzate per la distribuzione agli utenti finali.

Usare il set di strumenti MSVC dalla riga di comando
Viene illustrato come usare il compilatore C/C++ e gli strumenti di compilazione direttamente dalla riga di comando anziché usare l'IDE di Visual Studio.

Compilazione di DLL in Visual Studio
Come creare, eseguire il debug e distribuire DLL C/C++ (librerie condivise) in Visual Studio.

Procedura dettagliata: Creazione e uso di una libreria statica
Come creare un file binario lib .

Compilazione di applicazioni isolate C/C++ e di assembly side-by-side
Viene descritto il modello di distribuzione per le applicazioni desktop Windows basato sui concetti di applicazioni isolate e assembly affiancati.

Configurare progetti C++ per destinazioni x64 a 64 bit
Come specificare come destinazione hardware x64 a 64 bit con gli strumenti di compilazione MSVC.

Configurare i progetti C++ per processori ARM
Come usare gli strumenti di compilazione MSVC per specificare l'hardware arm.

Ottimizzazione del codice
Come ottimizzare il codice in vari modi, incluse le ottimizzazioni guidate dal programma.

Configurazione di programmi per Windows XP
Come specificare come destinazione Windows XP con gli strumenti di compilazione MSVC.

C/C++ Building Reference (Informazioni di riferimento per la compilazione in C/C++)
Vengono forniti collegamenti ad articoli di riferimento sulla compilazione di programmi in C++, sulle opzioni del compilatore e del linker e su vari strumenti di compilazione.