Procedura dettagliata: Compilare ed eseguire il debug di C++ con WSL 2 e Visual Studio 2022
Articolo
Visual Studio 2022 introduce un set di strumenti C++ nativo per lo sviluppo di sottosistema Windows per Linux versione 2 (WSL 2). Questo set di strumenti è ora disponibile in Visual Studio 2022 versione 17.0 o successiva.
WSL 2 è la nuova versione consigliata del sottosistema Windows per Linux (WSL). Offre prestazioni migliori del file system Linux, supporto dell'interfaccia utente grafica e compatibilità completa delle chiamate di sistema. Il set di strumenti WSL 2 di Visual Studio consente di usare Visual Studio per compilare ed eseguire il debug del codice C++ nelle distribuzioni WSL 2 senza aggiungere una connessione SSH. È già possibile compilare ed eseguire il debug di codice C++ nelle distribuzioni WSL 1 usando il set di strumenti WSL 1 nativo introdotto in Visual Studio 2019 versione 16.1.
Il set di strumenti WSL 2 di Visual Studio supporta entrambi i progetti Linux basati su CMake e MSBuild. CMake è la raccomandazione per tutti gli sviluppatori multipiattaforma C++ con Visual Studio. È consigliabile usare CMake perché compila ed esegue il debug dello stesso progetto in sistemi Windows, WSL e remoti.
Il supporto multipiattaforma C++ in Visual Studio presuppone che tutti i file di origine abbiano origine nel file system Windows. Quando la destinazione è una distribuzione WSL 2, Visual Studio esegue un comando locale rsync per copiare i file dal file system Windows al file system WSL. La copia locale rsync non richiede alcun intervento dell'utente. Si verifica automaticamente quando Visual Studio rileva che si usa una distribuzione di WSL 2. Per altre informazioni sulle differenze tra WSL 1 e WSL 2, vedere Confronto tra WSL 1 e WSL 2.
Installare gli strumenti necessari per compilare ed eseguire il debug in WSL 2. Si installerà una versione recente di CMake usando la distribuzione binaria CMake di Visual Studio in un passaggio successivo.
Installare WSL e una distribuzione WSL 2 seguendo le istruzioni riportate in Installare WSL.
Supponendo che la distribuzione usi apt (questa procedura dettagliata usa Ubuntu), usare i comandi seguenti per installare gli strumenti di compilazione necessari nella distribuzione di WSL 2:
Bash
sudo apt update
sudo apt install g++ gdb make ninja-build rsync zip
I apt comandi precedenti installano:
Compilatore C++
gdb
CMake
rsync
zip
Generatore di sistema di compilazione sottostante
Sviluppo CMake multipiattaforma con una distribuzione WSL 2
Questa procedura dettagliata usa GCC e Ninja in Ubuntu. Visual Studio 2022 versione 17.0 Preview 2 o successiva.
Visual Studio definisce un progetto CMake come cartella con un CMakeLists.txt file nella radice del progetto. In questa procedura dettagliata viene creato un nuovo progetto CMake usando il modello progetto CMake di Visual Studio:
Nella schermata Attività iniziali di Visual Studio selezionare Crea un nuovo progetto.
Le opzioni disponibili sono: Clonare un repository, Aprire un progetto o una soluzione, Aprire una cartella locale, Creare un nuovo progetto o Continuare senza codice."::
Nella casella di testo Cerca modelli digitare "cmake". Scegliere il tipo di progetto CMake e selezionare Avanti. Assegnare al progetto un nome e un percorso e quindi selezionare Crea.
Abilitare l'integrazione dei set di impostazioni di CMake di Visual Studio. Selezionare Strumenti>Opzioni>CMake>Generale. Selezionare Prefer using CMake Presets (Prefer using CMake Presets) per configurare, compilare e testare e quindi selezionare OK. È invece possibile aggiungere un CMakePresets.json file alla radice del progetto. Per altre informazioni, vedere Abilitare l'integrazione dei set di impostazioni di CMake.
Nel gruppo di file di configurazione di CMake,'Use CMake Presets if available, otherwise use CMakeSettings.json' is called out and is selected.In the CMake configuration file group, 'Use CMake Presets if available, otherwise use CMakeSettings.json' is called out and is selected.
Per attivare l'integrazione: dal menu principale selezionare File>Chiudi cartella. Viene visualizzata la pagina Attività iniziali . In Apri recente selezionare la cartella appena chiusa per riaprire la cartella.
Nella barra dei menu principale di Visual Studio sono disponibili tre elenchi a discesa. Usare l'elenco a discesa a sinistra per selezionare il sistema di destinazione attivo. Questo è il sistema in cui viene richiamato CMake per configurare e compilare il progetto. Query di Visual Studio per le installazioni WSL con wsl -l -v. Nell'immagine seguente WSL2: Ubuntu-20.04 viene visualizzata come sistema di destinazione.
Nota
Se Visual Studio inizia a configurare automaticamente il progetto, leggere il passaggio 11 per gestire la distribuzione binaria di CMake e quindi continuare con il passaggio seguente. Per personalizzare questo comportamento, vedere Modificare la configurazione automatica e le notifiche della cache.
Usare l'elenco a discesa al centro per selezionare il set di impostazioni attivo. Configurare i set di impostazioni indica a Visual Studio come richiamare CMake e generare il sistema di compilazione sottostante. Nel passaggio 7 l'impostazione predefinita configura attiva è il set di impostazioni predefinito linux creato da Visual Studio. Per creare un set di impostazioni personalizzato, selezionare Gestisci configurazioni... Per altre informazioni su Configura set di impostazioni, vedere Selezionare un set di impostazioni preimpostato e modificare i set di impostazioni.
Usare l'elenco a discesa a destra per selezionare il set di impostazioni di compilazione attivo. I set di impostazioni di compilazione indicano a Visual Studio come richiamare la compilazione. Nell'illustrazione del passaggio 7 il set di impostazioni di compilazione attivo è il set di impostazioni di compilazione predefinito creato da Visual Studio. Per altre informazioni sui set di impostazioni di compilazione, vedere Selezionare un set di impostazioni di compilazione.
Configurare il progetto in WSL 2. Se la generazione del progetto non viene avviata automaticamente, richiamare manualmente la configurazione con Project>Configureproject-name
Se nella distribuzione di WSL 2 non è installata una versione supportata di CMake, Visual Studio richiede di distribuire una versione recente di CMake sotto la barra multifunzione del menu principale. Selezionare Sì per distribuire i file binari CMake nella distribuzione di WSL 2.
All'utente viene richiesto se installare i file binari C Make più recenti da C make . org perché la versione C Make supportata non è installata."
Verificare che il passaggio di configurazione sia stato completato e che sia possibile visualizzare il messaggio di generazione di CMake completato nella finestra Output nel riquadro CMake . I file di compilazione vengono scritti in una directory nel file system della distribuzione WSL 2.
Selezionare la destinazione di debug attiva. Il menu a discesa debug elenca tutte le destinazioni CMake disponibili per il progetto.
Espandere la sottocartella del progetto nella Esplora soluzioni. CMakeProject.cpp Nel file impostare un punto di interruzione in main(). È anche possibile passare alla visualizzazione destinazioni CMake selezionando il pulsante Visualizza selezione nella Esplora soluzioni, evidenziato nello screenshot seguente:
Selezionare Avvia debug>oppure premere F5. Il progetto viene compilato, il file eseguibile viene avviato nella distribuzione di WSL 2 e Visual Studio interrompe l'esecuzione nel punto di interruzione. L'output del programma (in questo caso , "Hello CMake.") è visibile nella finestra della console Linux:
Nella finestra della console di Visual Studio Linux viene visualizzato l'output del programma: 'Hello C Make'. La finestra dell'editor mostra il programma hello world. L'esecuzione è stata arrestata in corrispondenza di un punto di interruzione sulla riga che indica che restituisce 0;".
A questo punto è stata compilata e sottoposto a debug un'app C++ con WSL 2 e Visual Studio 2022.
Considerazioni avanzate per i progetti WSL 2 e CMake
Se si ha come destinazione una distribuzione WSL 2 e non si vuole usare il set di strumenti WSL 2, nella mappa fornitore delle impostazioni remote di Visual Studio in CMakePresets.jsonimpostare forceWSL1Toolset su true . Per altre informazioni, vedere Mappa fornitore delle impostazioni remote di Visual Studio.
Se forceWSL1Tooslet è impostato su true, Visual Studio non mantiene una copia dei file di origine nel file system WSL. Accede invece ai file di origine nell'unità Windows montata (/mnt/...).
Nella maggior parte dei casi, è consigliabile usare il set di strumenti WSL 2 con distribuzioni WSL 2 perché WSL 2 è più lento quando i file di progetto vengono invece archiviati nel file system di Windows. Per altre informazioni sulle prestazioni del file system in WSL 2, vedere Confronto tra WSL 1 e WSL 2.
Specificare impostazioni avanzate, ad esempio il percorso della directory in WSL 2 in cui viene copiato il progetto, copiare le opzioni di origine e gli argomenti dei comandi rsync, nella mappa fornitore delle impostazioni remote di Visual Studio in CMakePresets.json. Per altre informazioni, vedere Mappa fornitore delle impostazioni remote di Visual Studio.
Le intestazioni di sistema vengono ancora copiate automaticamente nel file system di Windows per fornire l'esperienza nativa di IntelliSense. È possibile personalizzare le intestazioni incluse o escluse da questa copia nella mappa fornitore impostazioni remote di Visual Studio in CMakePresets.json.
È possibile modificare la modalità IntelliSense o specificare altre opzioni di IntelliSense nella mappa fornitore delle impostazioni di Visual Studio in CMakePresets.json. Per informazioni dettagliate sulla mappa fornitore, vedere Mappa fornitore delle impostazioni remote di Visual Studio.
Progetti Linux basati su WSL 2 e MSBuild
CMake è consigliato per tutto lo sviluppo multipiattaforma C++ con Visual Studio perché consente di compilare ed eseguire il debug dello stesso progetto in sistemi Windows, WSL e remoti.
Ma potrebbe essere disponibile un progetto Linux basato su MSBuild.
Se si dispone di un progetto Linux basato su MSBuild, è possibile eseguire l'aggiornamento al set di strumenti WSL 2 in Visual Studio. Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni, quindi scegliere Proprietà>Generale>Set di strumenti della piattaforma:
Se si usa una distribuzione WSL 2 e non si vuole usare il set di strumenti WSL 2, nell'elenco a discesa Set di strumenti della piattaforma selezionare GCC per sottosistema Windows per Linux o Clang per sottosistema Windows per Linux set di strumenti. Se uno di questi set di strumenti è selezionato, Visual Studio non mantiene una copia dei file di origine nel file system WSL e accede invece ai file di origine sull'unità Windows montata (/mnt/...). Le intestazioni di sistema vengono ancora copiate automaticamente nel file system di Windows per offrire un'esperienza IntelliSense nativa. Personalizzare le intestazioni incluse o escluse da questa copia in Generale pagine>delle proprietà.
Nella maggior parte dei casi, è consigliabile usare il set di strumenti WSL 2 con distribuzioni WSL 2 perché WSL 2 è più lento quando i file di progetto vengono archiviati nel file system di Windows. Per altre informazioni, vedere Confronto tra WSL 1 e WSL 2.
In questo modulo si apprenderà come usare il sottosistema Windows per Linux (WSL) con Visual Studio Code (VS Code). Verranno esaminati il processo di installazione e le nozioni di base sull'uso di WSL. Inoltre, viene installata e utilizzata l'estensione WSL di Visual Studio Code. Infine, viene illustrato come eseguire il debug e l'esecuzione di codice Python in VS Code all'interno dell'ambiente WSL.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.