Procedura dettagliata: compilazione di un programma C++ nativo nella riga di comando

Visual Studio include un compilatore C e C++ della riga di comando. È possibile usarlo per creare tutti gli elementi, dalle app console di base alle app piattaforma UWP (Universal Windows Platform), alle app desktop, ai driver di dispositivo e ai componenti .NET.

In questa procedura dettagliata viene creato un programma C++ di base "Hello, World" usando un editor di testo e quindi compilarlo nella riga di comando. Se si vuole provare l'IDE di Visual Studio invece di usare la riga di comando, vedere Procedura dettagliata: Uso di progetti e soluzioni (C++) o Uso dell'IDE di Visual Studio per lo sviluppo di applicazioni desktop C++.

In questa procedura dettagliata è possibile usare il proprio programma C++ invece di digitare quello visualizzato. In alternativa, è possibile usare un esempio di codice C++ da un altro articolo della Guida.

Prerequisiti

Per completare questa procedura dettagliata, è necessario aver installato Visual Studio e il carico di lavoro Sviluppo di applicazioni desktop facoltativo con C++ o strumenti di compilazione da riga di comando per Visual Studio.

Visual Studio è un ambiente di sviluppo integrato (IDE). Supporta un editor completo, gestori di risorse, debugger e compilatori per molti linguaggi e piattaforme. Le versioni disponibili includono l'edizione gratuita di Visual Studio Community e tutti possono supportare lo sviluppo C e C++. Per informazioni su come scaricare e installare Visual Studio, vedere Installare il supporto di C++ in Visual Studio.

Build Tools per Visual Studio installa solo i compilatori, gli strumenti e le librerie da riga di comando necessari per compilare programmi C e C++. È perfetto per creare lab o esercizi in classe e installare relativamente rapidamente. Per installare solo gli strumenti da riga di comando, cercare Build Tools for Visual Studio nella pagina Download di Visual Studio.

Prima di poter compilare un programma C o C++ nella riga di comando, verificare che gli strumenti siano installati ed è possibile accedervi dalla riga di comando. Visual C++ presenta requisiti complessi per l'ambiente della riga di comando per trovare gli strumenti, le intestazioni e le librerie usati. Non è possibile usare Visual C++ in una normale finestra del prompt dei comandi senza eseguire alcune operazioni di preparazione. Fortunatamente, Visual C++ installa i collegamenti per avviare un prompt dei comandi per sviluppatori con l'ambiente configurato per le compilazioni della riga di comando. Sfortunatamente, i nomi dei collegamenti del prompt dei comandi per gli sviluppatori e dove si trovano sono diversi in quasi tutte le versioni di Visual C++ e in versioni diverse di Windows. La prima attività dettagliata consiste nel trovare quello giusto da usare.

Nota

Un collegamento al prompt dei comandi per gli sviluppatori imposta automaticamente i percorsi corretti per il compilatore e gli strumenti e per le intestazioni e le librerie necessarie. È necessario impostare manualmente questi valori di ambiente se si usa una normale finestra del prompt dei comandi . Per altre informazioni, vedere Usare il set di strumenti MSVC dalla riga di comando. È consigliabile usare un collegamento al prompt dei comandi per gli sviluppatori anziché crearne uno personalizzato.

Aprire un prompt dei comandi per gli sviluppatori

  1. Se Visual Studio 2017 o versione successiva è stato installato in Windows 10 o versione successiva, aprire il menu Start e scegliere Tutte le app. Scorrere verso il basso e aprire la cartella di Visual Studio (non l'applicazione di Visual Studio). Scegliere Prompt dei comandi per gli sviluppatori per Visual Studio per aprire la finestra del prompt dei comandi.

    Se è stato installato Microsoft Visual C++ Build Tools 2015 in Windows 10 o versione successiva, aprire il menu Start e scegliere Tutte le app. Scorrere verso il basso e aprire la cartella Strumenti di compilazione di Visual C++. Scegliere Il prompt dei comandi di Visual C++ 2015 x86 Native Tools per aprire la finestra del prompt dei comandi.

    È anche possibile usare la funzione di ricerca di Windows per cercare "prompt dei comandi per sviluppatori" e sceglierne una corrispondente alla versione installata di Visual Studio. Usare il collegamento per aprire la finestra del prompt dei comandi.

  2. Verificare quindi che il prompt dei comandi per sviluppatori di Visual C++ sia configurato correttamente. Nella finestra del prompt dei comandi immettere cl e verificare che l'output sia simile al seguente:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    usage: cl [ option... ] filename... [ /link linkoption... ]
    

    Potrebbero esserci differenze nei numeri di directory o versione correnti. Questi valori dipendono dalla versione di Visual C++ e dagli eventuali aggiornamenti installati. Se l'output precedente è simile a quello visualizzato, è possibile compilare programmi C o C++ nella riga di comando.

    Nota

    Se viene visualizzato un errore come "'cl' non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch", errore C1034 o errore LNK1104 quando si esegue il cl comando, non si sta usando un prompt dei comandi per sviluppatori o si è verificato un problema con l'installazione di Visual C++. È necessario risolvere questo problema prima di poter continuare.

    Se non è possibile trovare il collegamento al prompt dei comandi per gli sviluppatori o se viene visualizzato un messaggio di errore quando si immette cl, l'installazione di Visual C++ potrebbe avere un problema. Provare a reinstallare il componente Visual C++ in Visual Studio o reinstallare Microsoft Visual C++ Build Tools. Non passare alla sezione successiva finché il cl comando non funziona. Per altre informazioni sull'installazione e la risoluzione dei problemi di Visual C++, vedere Installare Visual Studio.

    Nota

    A seconda della versione di Windows nel computer e della configurazione di sicurezza del sistema, potrebbe essere necessario fare clic con il pulsante destro del mouse per aprire il menu di scelta rapida per il collegamento del prompt dei comandi per gli sviluppatori e quindi scegliere Esegui come amministratore per compilare ed eseguire correttamente il programma creato seguendo questa procedura dettagliata.

Creare un file di origine di Visual C++ e compilarlo nella riga di comando

  1. Nella finestra del prompt dei comandi per gli sviluppatori immettere md c:\hello per creare una directory e quindi immettere cd c:\hello per passare a tale directory. Questa directory è la posizione in cui vengono creati sia il file di origine che il programma compilato.

  2. Immettere notepad hello.cpp nella finestra del prompt dei comandi.

    Scegliere quando Blocco note chiede di creare un nuovo file. Questo passaggio apre una finestra vuota Blocco note, pronta per l'immissione del codice in un file denominato hello.cpp.

  3. In Blocco note immettere le righe di codice seguenti:

    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Hello, world, from Visual C++!" << endl;
    }
    

    Questo codice è un semplice programma che scriverà una riga di testo sullo schermo e quindi esce. Per ridurre al minimo gli errori, copiare il codice e incollarlo nel Blocco note.

  4. Salvare il lavoro. Nel menu File del Blocco note scegliere Salva.

    È stato creato un file di origine C++, hello.cpp, pronto per la compilazione.

  5. Tornare alla finestra del prompt dei comandi per gli sviluppatori. Immettere dir al prompt dei comandi per elencare il contenuto della directory c:\hello. Il file di origine hello.cpp verrà visualizzato nell'elenco di directory, simile al seguente:

    c:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of c:\hello
    
    05/24/2016  05:36 PM    <DIR>          .
    05/24/2016  05:36 PM    <DIR>          ..
    05/24/2016  05:37 PM               115 hello.cpp
                   1 File(s)            115 bytes
                   2 Dir(s)  571,343,446,016 bytes free
    
    

    Le date e altri dettagli saranno diversi nel computer.

    Nota

    Se il file di codice sorgente non è visualizzato, hello.cppverificare che la directory di lavoro corrente nel prompt dei comandi sia la C:\hello directory creata. Assicurarsi anche che si tratta della directory in cui è stato salvato il file di origine. Assicurarsi di aver salvato il codice sorgente con un'estensione .cpp del nome file, non un'estensione .txt . Il file di origine viene salvato nella directory corrente come .cpp file automaticamente se si apre Blocco note al prompt dei comandi usando il notepad hello.cpp comando . Blocco note comportamento è diverso se lo si apre in un altro modo: per impostazione predefinita, Blocco note aggiunge un'estensione .txt ai nuovi file quando vengono salvati. L'impostazione predefinita è anche salvare i file nella directory Documenti . Per salvare il file con un'estensione .cpp in Blocco note, scegliere File>Salva con nome. Nella finestra di dialogo Salva con nome passare alla C:\hello cartella nel controllo visualizzazione albero della directory. Usare quindi il controllo a discesa Salva come tipo per selezionare Tutti i file (*.*).. Immettere hello.cpp nel controllo Modifica nome file e quindi scegliere Salva per salvare il file.

  6. Al prompt dei comandi per gli sviluppatori immettere cl /EHsc hello.cpp per compilare il programma.

    Il compilatore cl.exe genera un file OBJ che contiene il codice compilato, quindi esegue il linker per creare un programma eseguibile denominato hello.exe. Il nome del programma è visibile nelle righe di informazioni di output visualizzate dal compilatore. L'output del compilatore dovrebbe essere simile al seguente:

    c:\hello>cl /EHsc hello.cpp
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.cpp
    Microsoft (R) Incremental Linker Version 14.10.25017.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    /out:hello.exe
    hello.obj
    

    Nota

    Se viene visualizzato un errore come "'cl' non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch", errore C1034 o errore LNK1104, il prompt dei comandi per sviluppatori non è configurato correttamente. Per informazioni su come risolvere questo problema, tornare alla sezione Apri un prompt dei comandi per sviluppatori.

    Nota

    Se viene visualizzato un errore o un avviso del compilatore o del linker diverso, esaminare il codice sorgente per correggere eventuali errori, quindi salvarlo ed eseguire di nuovo il compilatore. Per informazioni su errori specifici, usare la casella di ricerca per cercare il numero di errore.

  7. Per eseguire il programma hello.exe, immettere helloal prompt dei comandi.

    Il programma viene avviato e chiuso dopo aver visualizzato il testo seguente:

    Hello, world, from Visual C++!
    

    Congratulazioni, è stato compilato ed eseguito un programma C++ usando gli strumenti da riga di comando.

Passaggi successivi

Questo esempio di "Hello, World" è semplice come un programma C++ può ottenere. I programmi reali in genere hanno file di intestazione, più file di origine e collegamenti alle librerie.

È possibile usare la procedura descritta in questa procedura dettagliata per compilare codice C++ personalizzato anziché digitare il codice di esempio illustrato. Questi passaggi consentono anche di compilare molti programmi di esempio di codice C++ disponibili altrove. È possibile inserire il codice sorgente e compilare le app in qualsiasi directory scrivibile. Per impostazione predefinita, l'IDE di Visual Studio crea progetti nella cartella utente, in una sottocartella source\repos . Le versioni precedenti possono inserire progetti in una cartella Documents\Visual Studio <version>\Projects .

Per compilare un programma con file di codice sorgente aggiuntivi, immetterli tutti nella riga di comando, ad esempio:

cl /EHsc file1.cpp file2.cpp file3.cpp

L'opzione /EHsc della riga di comando indica al compilatore di abilitare il comportamento di gestione delle eccezioni C++ standard. Senza di essa, le eccezioni generate possono comportare perdite di risorse e oggetti non distribuiti. Per altre informazioni, vedere /EH (Modello di gestione delle eccezioni).

Quando si specificano file di origine aggiuntivi, il compilatore usa il primo file di input per creare il nome del programma. In questo caso, restituisce un programma denominato file1.exe. Per modificare il nome in program1.exe, aggiungere un'opzione /out linker:

cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Per rilevare automaticamente più errori di programmazione, è consigliabile compilare usando l'opzione livello di avviso /W3 o /W4 :

cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Il compilatore cl.exe include molte altre opzioni. È possibile applicarli per compilare, ottimizzare, eseguire il debug e analizzare il codice. Per un elenco rapido, immettere cl /? al prompt dei comandi per gli sviluppatori. È anche possibile compilare e collegare separatamente e applicare le opzioni del linker in scenari di compilazione più complessi. Per altre informazioni sulle opzioni del compilatore e del linker e sull'utilizzo, vedere Riferimenti alla compilazione di C/C++.

È possibile usare NMAKE e makefile, file MSBuild e di progetto o CMake per configurare e compilare progetti più complessi nella riga di comando. Per altre informazioni sull'uso di questi strumenti, vedere Riferimenti per NMAKE, MSBuild e progetti CMake in Visual Studio.

I linguaggi C e C++ sono simili, ma non uguali. Il compilatore MSVC usa una semplice regola per determinare il linguaggio da usare quando compila il codice. Per impostazione predefinita, il compilatore MSVC considera i file che terminano .c come codice sorgente C e i file che terminano .cpp come codice sorgente C++. Per forzare il compilatore a considerare tutti i file come C++ indipendentemente dall'estensione del nome file, usare l'opzione del compilatore /TP .

Il compilatore MSVC include una libreria di runtime C (CRT) conforme allo standard ISO C99, con eccezioni minime. Il codice portabile viene in genere compilato ed eseguito come previsto. Alcune funzioni di libreria obsolete e diversi nomi di funzione POSIX sono deprecate dal compilatore MSVC. Le funzioni sono supportate, ma i nomi preferiti sono stati modificati. Per altre informazioni, vedere Funzionalità di sicurezza in CRT e Avviso del compilatore (livello 3) C4996.

Vedi anche

Riferimenti al linguaggio C++
Progetti e sistemi di compilazione
Opzioni del compilatore MSVC