Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Visual Studio 2022 introduceert een systeemeigen C++-toolset voor Windows Subsystem voor WSL 2-ontwikkeling (Linux versie 2). Deze toolset is nu beschikbaar in Visual Studio 2022 versie 17.0 of hoger.
WSL 2 is de nieuwe, aanbevolen versie van het Windows-subsysteem voor Linux (WSL). Het biedt betere prestaties van het Linux-bestandssysteem, GUI-ondersteuning en volledige compatibiliteit van systeemoproepen. Met de WSL 2-toolset van Visual Studio kunt u Visual Studio gebruiken om C++-code te bouwen en fouten op te sporen in WSL 2-distributies zonder een SSH-verbinding toe te voegen. U kunt al C++-code bouwen en fouten opsporen in WSL 1-distributies met behulp van de systeemeigen WSL 1-toolset die is geïntroduceerd in Visual Studio 2019 versie 16.1.
De WSL 2-toolset van Visual Studio ondersteunt linux-projecten op basis van CMake en MSBuild. CMake is onze aanbeveling voor alle platformoverschrijdende ontwikkeling van C++ met Visual Studio. CMake wordt aangeraden omdat het hetzelfde project bouwt en debugt op Windows-, WSL- en externe systemen.
Zie Video: Fouten opsporen in C++ met WSL 2-distributies en Visual Studio 2022 voor een videopresentatie van de informatie in dit onderwerp.
Achtergrond van het WSL 2 hulpmiddelenset
C++ platformoverschrijdende ondersteuning in Visual Studio gaat ervan uit dat alle bronbestanden afkomstig zijn uit het Windows-bestandssysteem. Bij het richten van een WSL 2-distributie voert Visual Studio een lokale rsync opdracht uit om bestanden van het Windows-bestandssysteem naar het WSL-bestandssysteem te kopiëren. Voor de lokale rsync kopie is geen tussenkomst van de gebruiker vereist. Dit gebeurt automatisch wanneer Visual Studio detecteert dat u een WSL 2-distributie gebruikt. Zie WSL 1 en WSL 2 vergelijken voor meer informatie over de verschillen tussen WSL 1 en WSL 2.
Integratie van CMake Presets in Visual Studio ondersteunt de WSL 2-toolset. Zie de integratie van CMake Presets in Visual Studio en Visual Studio Code en configureer en bouw met CMake Presets in Visual Studio voor meer informatie. In dit artikel vindt u ook meer geavanceerde informatie onder Overwegingen voor Geavanceerde WSL 2- en CMake-projecten.
De buildtools installeren
Installeer de hulpprogramma's die nodig zijn voor het bouwen en opsporen van fouten in WSL 2. In een latere stap installeert u een recente versie van CMake met behulp van de binaire CMake-implementatie van Visual Studio.
Installeer WSL en een WSL 2-distributie door de instructies te volgen bij WSL installeren.
Ervan uitgaande dat uw distributie gebruikt
apt(in dit scenario maakt gebruik van Ubuntu), gebruikt u de volgende opdrachten om de vereiste buildhulpprogramma's op uw WSL 2-distributie te installeren:sudo apt update sudo apt install g++ gdb make ninja-build rsync zipDe bovenstaande
apt-opdrachten installeren:- Een C++-compiler
gdbCMakersynczip- Een onderliggende build-systeemgenerator
Platformoverschrijdende CMake-ontwikkeling met een WSL 2-distributie
In deze walkthrough worden GCC en Ninja op Ubuntu gebruikt. En Visual Studio 2022 versie 17.0 Preview 2 of hoger.
Visual Studio definieert een CMake-project als map met een CMakeLists.txt bestand in de hoofdmap van het project. In dit scenario maakt u een nieuw CMake-project met behulp van de Visual Studio CMake Project-sjabloon :
Selecteer een nieuw project maken in het scherm Aan de slag met Visual Studio.
De beschikbare opties zijn: Een opslagplaats klonen, een project of oplossing openen, een lokale map openen, een nieuw project maken of doorgaan zonder code.'::Typ 'cmake' in het tekstvak Sjablonen zoeken . Kies het type CMake-project en selecteer Volgende. Geef het project een naam en locatie, en selecteer vervolgens Maken.
Schakel de integratie van CMake Presets van Visual Studio in. Selecteer Extra>opties>CMake>Algemeen. Selecteer Prefer using CMake Presets for configureren, bouwen en testen, en selecteer OK. In plaats daarvan had u een
CMakePresets.jsonbestand aan de hoofdmap van het project kunnen toevoegen. Zie Integratie van CMake Presets inschakelen voor meer informatie.
In de CMake-configuratiebestandsgroep wordt 'Gebruik de CMake-voorinstellingen indien beschikbaar, anders CMakeSettings.json' uitgelicht en geselecteerd.
Als u de integratie wilt activeren, selecteert u in het hoofdmenu De map Bestand>sluiten. De pagina Aan de slag wordt weergegeven. Selecteer onder Recent openen de map die u zojuist hebt gesloten om de map opnieuw te openen.
Er zijn drie vervolgkeuzelijsten op de hoofdmenubalk van Visual Studio. Gebruik de vervolgkeuzelijst aan de linkerkant om uw actieve doelsysteem te selecteren. Dit is het systeem waarin CMake wordt aangeroepen om het project te configureren en te bouwen. Visual Studio-query's voor WSL-installaties met
wsl -l -v. In de volgende afbeelding wordt WSL2: Ubuntu-20.04 weergegeven als doelsysteem.
Opmerking
Als Visual Studio uw project automatisch gaat configureren, leest u stap 11 voor het beheren van de binaire CMake-implementatie en gaat u vervolgens verder met de onderstaande stap. Zie Automatische configuratie- en cachemeldingen wijzigen om dit gedrag aan te passen.
Gebruik de vervolgkeuzelijst in het midden om uw actieve vooraf ingestelde configuratie te selecteren. Configureer vooraf ingestelde instellingen in Visual Studio over het aanroepen van CMake en het genereren van het onderliggende buildsysteem. In stap 7 is de actieve Configureer Preset de linux-default Preset die is gemaakt door Visual Studio. Als u een aangepaste vooraf ingestelde configuratie wilt maken, selecteert u Configuraties beheren... Zie Een vooraf ingestelde configuratie selecteren en Voorinstellingen bewerken voor meer informatie over vooraf ingestelde instellingen configureren.
Gebruik de vervolgkeuzelijst aan de rechterkant om uw actieve build-voorinstelling te selecteren. Build-voorinstellingen vertellen Visual Studio hoe u build kunt aanroepen. In de afbeelding voor stap 7 is de actieve build-voorinstelling de standaard build-voorinstelling die is gemaakt door Visual Studio. Zie Een build-voorinstelling selecteren voor meer informatie over build-voorinstellingen.
Configureer het project op WSL 2. Als het genereren van een project niet automatisch wordt gestart, roept u de configuratie handmatig aan met >configureren
Als er geen ondersteunde versie van CMake is geïnstalleerd op de distributie van WSL 2, wordt u in Visual Studio gevraagd onder het lint van het hoofdmenu een recente versie van CMake te implementeren. Selecteer Ja om binaire CMake-bestanden te implementeren in uw WSL 2-distributie.
De gebruiker wordt gevraagd of de meest recente binaire C Make-bestanden van C make moeten worden geïnstalleerd. org omdat de ondersteunde C Make-versie niet is geïnstalleerd.
Controleer of de configuratiestap is voltooid en of het bericht CMake-generatie voltooid in het uitvoervenster onder het deelvenster CMake wordt weergegeven. Buildbestanden worden geschreven naar een map in het bestandssysteem van WSL 2.
Selecteer het actieve foutopsporingsdoel. In het vervolgkeuzemenu voor foutopsporing worden alle CMake-doelen weergegeven die beschikbaar zijn voor het project.
Vouw de projectsubmap uit in Solution Explorer. Stel in het
CMakeProject.cppbestand een onderbrekingspunt inmain(). U kunt ook naar de weergave CMake-doelen navigeren door de knop Weergavekiezer te selecteren in Solution Explorer, zoals te zien in de volgende schermafbeelding.
Selecteer Start voor foutopsporing> of druk op F5. Uw project bouwt, het uitvoerbare bestand wordt gestart op de distributie van WSL 2 en Visual Studio stopt de uitvoering op het onderbrekingspunt. De uitvoer van uw programma (in dit geval
"Hello CMake.") is zichtbaar in het Linux-consolevenster:
In het Linux-consolevenster van Visual Studio wordt de uitvoer van het programma weergegeven: 'Hello C Make.' In het editorvenster ziet u het hello world-programma. De uitvoering is gestopt op een onderbrekingspunt op de regel met de tekst return 0;."
U hebt nu een C++-app gemaakt en er fouten in opgespoord met WSL 2 en Visual Studio 2022.
Overwegingen voor geavanceerde WSL 2- en CMake-projecten
Visual Studio biedt alleen systeemeigen ondersteuning voor WSL 2 voor CMake-projecten waarvoor CMakePresets.json het actieve configuratiebestand is. Zie CMakeSettings.json voor informatie over het migreren van CMakePresets.json naar .
Als u zich richt op een WSL 2-distributie en u de WSL 2-toolset niet wilt gebruiken, stelt u CMakePresets.json in op true in de leverancierkaart van Visual Studio Remote Settings in. Zie de kaart van de leverancier van externe instellingen van Visual Studio voor meer informatie.
Als forceWSL1Tooslet is ingesteld op true, onderhoudt Visual Studio geen kopie van uw bronbestanden in het WSL-bestandssysteem. In plaats daarvan heeft het toegang tot bronbestanden op het gekoppelde Windows-station (/mnt/...).
In de meeste gevallen is het raadzaam om de WSL 2-toolset met WSL 2-distributies te gebruiken, omdat WSL 2 langzamer is wanneer projectbestanden in plaats daarvan worden opgeslagen in het Windows-bestandssysteem. Zie WSL 1 en WSL 2 vergelijken voor meer informatie over de prestaties van het bestandssysteem in WSL 2.
Geef geavanceerde instellingen op, zoals het pad naar de directory op WSL 2 waar het project wordt gekopieerd, bronkopieeropties en rsync-opdrachtargumenten, in de Vendor-map voor Externe Instellingen van Visual Studio in CMakePresets.json. Zie de kaart van de leverancier van externe instellingen van Visual Studio voor meer informatie.
Systeemkoppen worden nog steeds automatisch gekopieerd naar het Windows-bestandssysteem om de systeemeigen IntelliSense-ervaring te leveren. U kunt de headers die zijn opgenomen of uitgesloten van deze kopie aanpassen in de Visual Studio-instellingen voor externe leveranciers in CMakePresets.json.
U kunt de IntelliSense-modus wijzigen of andere IntelliSense-opties opgeven in de kaart van de leverancier van Visual Studio-instellingen in CMakePresets.json. Zie de leverancierskaart van Visual Studio Remote Settings voor meer informatie over de leverancierskaart van de leverancier.
Op WSL 2 en MSBuild gebaseerde Linux-projecten
CMake wordt aanbevolen voor alle platformoverschrijdende C++-ontwikkeling met Visual Studio, omdat u hiermee hetzelfde project kunt bouwen en fouten kunt opsporen in Windows-, WSL- en externe systemen.
Maar mogelijk hebt u een Op MSBuild gebaseerd Linux-project.
Als u een Op MSBuild gebaseerd Linux-project hebt, kunt u een upgrade uitvoeren naar de WSL 2-toolset in Visual Studio. Klik met de rechtermuisknop op het project in Solution Explorer en kies vervolgens Properties>General>Platform Toolset:
Als u zich richt op een WSL 2-distributie en u de WSL 2-toolset niet wilt gebruiken, selecteert u in de vervolgkeuzelijst Platformhulpprogramma'set het GCC voor Windows-subsysteem voor Linux of Clang voor Windows-subsysteem voor Linux-hulpprogramma's. Als een van deze hulpprogrammasets is geselecteerd, onderhoudt Visual Studio geen kopie van uw bronbestanden in het WSL-bestandssysteem en opent in plaats daarvan bronbestanden via het gekoppelde Windows-station (/mnt/...). Systeemkoppen worden nog steeds automatisch gekopieerd naar het Windows-bestandssysteem om een systeemeigen IntelliSense-ervaring te bieden. Pas de headers aan die in deze kopie zijn opgenomen of uitgesloten in eigenschappenpagina's>algemeen.
In de meeste gevallen is het raadzaam om de WSL 2-toolset met WSL 2-distributies te gebruiken, omdat WSL 2 trager is wanneer projectbestanden worden opgeslagen in het Windows-bestandssysteem. Zie WSL 1 en WSL 2 vergelijken voor meer informatie.
Zie ook
Video: Fouten opsporen in C++ met WSL 2-distributies en Visual Studio 2022
Visual Studio 2022 downloaden
Een CMake Linux-project maken in Visual Studio
Zelfstudie: Fouten opsporen in een CMake-project op een externe Windows-computer