Sdílet prostřednictvím


Návod: Sestavení a ladění jazyka C++ pomocí WSL 2 a sady Visual Studio 2022

Visual Studio 2022 zavádí nativní sadu nástrojů C++ pro vývoj Subsystém Windows pro Linux verze 2 (WSL 2). Tato sada nástrojů je nyní dostupná v Visual Studio 2022 verze 17.0 nebo vyšší.

WSL 2 je nová doporučená verze Subsystém Windows pro Linux (WSL). Poskytuje lepší výkon systému souborů Linux, podporu grafického uživatelského rozhraní a plnou kompatibilitu volání systému. Sada nástrojů WSL 2 sady Visual Studio umožňuje pomocí sady Visual Studio sestavovat a ladit kód C++ na distribucích WSL 2 bez přidání připojení SSH. Pomocí nativní sady nástrojů WSL 1, která byla představena v sadě Visual Studio 2019 verze 16.1, už můžete vytvářet a ladit kód jazyka C++ na distribucích WSL 1.

Sada nástrojů WSL 2 sady Visual Studio podporuje projekty CMake i MSBuild pro Linux. CMake je naším doporučením pro veškerý vývoj C++ napříč platformami v sadě Visual Studio. CMake doporučujeme, protože sestavuje a ladí stejný projekt ve Windows, WSL a vzdálených systémech.

Video s prezentací informací v tomto tématu najdete v tématu Video: Ladění C++ pomocí distribucí WSL 2 a sady Visual Studio 2022.

Pozadí sady nástrojů WSL 2

Podpora jazyka C++ pro různé platformy v sadě Visual Studio předpokládá, že všechny zdrojové soubory pocházejí ze systému souborů Systému Windows. Když cílíte na distribuci WSL 2, Visual Studio spustí místní rsync příkaz ke kopírování souborů ze systému souborů Windows do systému souborů WSL. Místní rsync kopie nevyžaduje zásah uživatele. K tomu dochází automaticky, když Sada Visual Studio zjistí, že používáte distribuci WSL 2. Další informace o rozdílech mezi WSL 1 a WSL 2 najdete v tématu Porovnání WSL 1 a WSL 2.

Integrace předvoleb CMake v sadě Visual Studio podporuje sadu nástrojů WSL 2. Další informace najdete v tématu Integrace předvoleb CMake v sadě Visual Studio a Visual Studio Code a konfigurace a sestavování pomocí předvoleb CMake v sadě Visual Studio. V tomto článku najdete také pokročilejší informace v části Pokročilé aspekty projektů WSL 2 a CMake.

Instalace nástrojů sestavení

Nainstalujte nástroje potřebné k sestavení a ladění ve WSL 2. V pozdějším kroku nainstalujete nedávnou verzi CMake pomocí nasazení binárního souboru CMake poskytovaného sadou Visual Studio.

  1. Nainstalujte WSL a distribuci WSL 2 podle pokynů v části Instalace WSL.

  2. Za předpokladu, že vaše distribuce používá apt (tento názorný postup používá Ubuntu), pomocí následujících příkazů nainstalujte požadované nástroje sestavení do distribuce WSL 2:

    sudo apt update
    sudo apt install cmake g++ gdb make ninja-build rsync zip
    

    Výše apt uvedené příkazy nainstalují:

    • Kompilátor C++
    • gdb
    • CMake
    • rsync
    • zip
    • Podkladový generátor systému sestavování

Vývoj CMake pro různé operační systémy s distribucí WSL 2

Tento názorný postup používá GCC a Ninja na Ubuntu. A Visual Studio 2022 verze 17.0 Preview 2 nebo novější.

Visual Studio definuje projekt CMake jako složku se CMakeLists.txt souborem v kořenovém adresáři projektu. V tomto názorném postupu vytvoříte nový projekt CMake pomocí šablony projektu CMake sady Visual Studio:

  1. Na obrazovce Začínáme se sadou Visual Studio vyberte Vytvořit nový projekt.

    Snímek obrazovky s dialogovým oknem Začínáme se sadou Visual Studio 2022 Dostupné možnosti: Klonování úložiště, otevření projektu nebo řešení, otevření místní složky, vytvoření nového projektu nebo pokračování bez kódu:::

  2. Do textového pole Hledat šablony zadejte "cmake". Zvolte typ projektu CMake a vyberte Další. Zadejte název a umístění projektu a pak vyberte Vytvořit.

  3. Povolte integraci sad předvoleb CMake v rámci Visual Studio. Vyberte Nástroje>Možnosti>CMake>Obecné. Vyberte Preferovat použití předvoleb CMake pro konfiguraci, sestavení a testování a pak vyberte OK. Místo toho jste mohli přidat CMakePresets.json soubor do kořenového adresáře projektu. Další informace najdete v tématu Povolení integrace předvoleb CMake.

    Snímek obrazovky s možnostmi projektu sady Visual Studio Je vybrána možnost Cmake > General.

    Ve skupině konfiguračních souborů CMake je vybrána možnost "Použít předvolby CMake, pokud jsou k dispozici, jinak použít CMakeSettings.json".

  4. Integraci aktivujete tak, že v hlavní nabídce vyberete Soubor>zavřít složku. Zobrazí se stránka Začínáme. V části Otevřít poslední vyberte složku, kterou jste právě zavřeli, a znovu otevřete složku.

  5. Na hlavním řádku nabídek sady Visual Studio jsou tři rozevírací seznamy. Pomocí rozevíracího seznamu vlevo vyberte aktivní cílový systém. Toto je systém, ve kterém je vyvolána CMake pro konfiguraci a sestavení projektu. Sada Visual Studio vyhledává instalace WSL s nástroji wsl -l -v. Na následujícím obrázku je WSL2: Ubuntu-20.04 zobrazen jako cílový systém.

    Snímek obrazovky s rozevíracím seznamem cílových systémů sady Visual Studio. WSL2: Ubuntu-20.04 je vybrán.

    Poznámka:

    Pokud visual Studio začne konfigurovat projekt automaticky, přečtěte si krok 11 pro správu binárního nasazení CMake a pokračujte k následujícímu kroku. Chcete-li toto chování přizpůsobit, viz Úprava automatické konfigurace a oznámení mezipaměti.

  6. Pomocí rozevíracího seznamu uprostřed vyberte aktivní předvolbu konfigurace. Konfigurační předvolby určují, jak má Visual Studio vyvolat CMake a vygenerovat základní systém sestavení. V kroku 7 je aktivní předvolbou konfigurace předvolba linux-default vytvořená sadou Visual Studio. Pokud chcete vytvořit vlastní předvolbu konfigurace, vyberte Spravovat konfigurace... Další informace o konfiguraci předvoleb najdete v tématu Výběr přednastavení a úprav přednastavení.

    Snímek obrazovky s rozevíracím seznamem aktivní předvolby konfigurace sady Visual Studio. Je vybrána možnost Spravovat konfigurace...

  7. Pomocí rozevíracího seznamu vpravo vyberte aktivní předvolbu sestavení. Předvolby sestavení určují ve Visual Studio, jak spustit sestavení. Na obrázku kroku 7 je aktivní předvolba sestavení Výchozí, vytvořená sadou Visual Studio. Pro více informací o Build Presets viz Výběr přednastavení sestavení.

  8. Nakonfigurujte projekt ve WSL 2. Pokud se generování projektu nespustí automaticky, pak ručně spusťte konfiguraci s Project>Configureproject-name

    Snímek obrazovky s rozevíracím seznamem konfigurace projektu sady Visual Studio Je vybrána možnost Konfigurovat CMakeProject.

  9. Pokud ve své distribuci WSL 2 nemáte nainstalovanou podporovanou verzi CMake, Visual Studio vás vyzve k nasazení poslední verze CMake těsně pod pás karet hlavní nabídky. Pokud chcete nasadit binární soubory CMake do distribuce WSL 2, vyberte Ano .

    Snímek obrazovky s výzvou pod panelem nástrojů sady Visual Studio

    Uživateli se zobrazí výzva k instalaci nejnovějších binárních souborů C Make z jazyka C make . organizace, protože podporovaná verze C Make není nainstalovaná."

  10. Ověřte, že se dokončil krok konfigurace a že se v okně Výstup v podokně CMake zobrazí zpráva o dokončení generování CMake. Soubory sestavení se zapisují do adresáře v systému souborů WSL 2.

    Snímek obrazovky s oknem Výstup sady Visual Studio Obsahuje zprávy vygenerované během kroku konfigurace, včetně dokončení generování C Make.

  11. Vyberte aktivní cíl ladění. Rozevírací nabídka ladění obsahuje seznam všech CMake cílů, které jsou dostupné pro projekt.

    Snímek obrazovky s rozevírací nabídkou ladění sady Visual Studio, kde je vybrán CMakeProject.

  12. Rozbalte podsložku projektu v Průzkumník řešení. Nastavte zarážku v main() v souboru CMakeProject.cpp. Můžete také přejít do zobrazení cílů CMake tak, že v Průzkumník řešení vyberete tlačítko Pro výběr zobrazení, zvýrazněné na následujícím snímku obrazovky:

    Snímek obrazovky s průzkumníkem řešení sady Visual Studio zobrazujícím tlačítko pro přepínání zobrazení Nachází se napravo od tlačítka Domů.

  13. Vyberte Debug>Start, nebo stiskněte klávesu F5. Projekt se sestaví, spustitelný soubor se spustí na distribuci WSL 2 a Visual Studio zastaví provádění na zarážce. Výstup programu (v tomto případě "Hello CMake.") se zobrazí v okně konzoly Linuxu:

    Snímek obrazovky se spuštěným programem Hello World

    V okně konzoly sady Visual Studio Linux se zobrazí výstup programu: "Hello C Make". V okně editoru se zobrazí program Hello World. Spuštění se zastavilo na bodu přerušení na řádku s textem return 0;.

Teď jste vytvořili a ladili aplikaci C++ pomocí WSL 2 a Visual Studio 2022.

Důležité informace o pokročilých projektech WSL 2 a CMake

Visual Studio poskytuje nativní podporu pro WSL 2 pouze pro projekty CMake, které používají CMakePresets.json jako aktivní konfigurační soubor. Pokud chcete provést migraci z CMakeSettings.json na CMakePresets.json, viz Povolení integrace předvoleb CMake v sadě Visual Studio.

Pokud cílíte na distribuci WSL 2 a nechcete používat sadu nástrojů WSL 2, pak v mapování vzdáleného nastavení Visual Studio nastavte forceWSL1Toolset na true. Další informace naleznete v tématu Visual Studio Remote Settings vendor map.

Pokud je forceWSL1Tooslet nastaven na hodnotu true, Visual Studio neudržuje kopii zdrojových souborů v systému souborů WSL. Místo toho přistupuje ke zdrojovým souborům na připojené jednotce Systému Windows (/mnt/...).

Ve většině případů je nejlepší použít sadu nástrojů WSL 2 s distribucemi WSL 2, protože WSL 2 je pomalejší, když jsou soubory projektu uložené v systému souborů systému Windows. Další informace o výkonu systému souborů ve WSL 2 najdete v tématu Porovnání WSL 1 a WSL 2.

Zadejte upřesňující nastavení, jako je cesta k adresáři ve WSL 2, kde je projekt zkopírován, možnosti kopírování zdrojů a argumenty příkazu rsync v mapě dodavatelů pro vzdálená nastavení ve Visual Studio v CMakePresets.json. Další informace naleznete v tématu mapa dodavatelů Visual Studio Remote Settings.

Systémová záhlaví se stále automaticky kopírují do systému souborů Windows, aby bylo možné poskytovat nativní prostředí IntelliSense. Záhlaví, která mají být zahrnuta nebo vyloučena z této kopie, můžete přizpůsobit v mapování dodavatelských nastavení pro Visual Studio Remote Settings v souboru CMakePresets.json.

Režim IntelliSense můžete změnit nebo zadat jiné možnosti IntelliSense v mapě dodavatele nastavení sady Visual Studio v CMakePresets.json. Podrobnosti o mapě dodavatele najdete v tématu Mapa dodavatele vzdáleného nastavení sady Visual Studio.

Projekty LINUX založené na WSL 2 a MSBuild

CMake se doporučuje pro všechny multiplatformní vývoj v jazyce C++ pomocí sady Visual Studio, protože umožňuje sestavovat a ladit stejný projekt ve Windows, WSL a vzdálených systémech.

Můžete ale mít projekt Linuxu založený na MSBuildu.

Pokud máte projekt Linuxu založený na MSBuildu, můžete upgradovat na sadu nástrojů WSL 2 v sadě Visual Studio. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a pak zvolte Vlastnosti>Obecné>Výběr nástrojové platformy:

Snímek obrazovky z Visual Studio s rozevíracím seznamem s vybraným Toolsetem Platform a napravo s dalším rozevíracím seznamem s vybraným Toolsetem WSL2.

Pokud cílíte na distribuci WSL 2 a nechcete používat sadu nástrojů WSL 2, pak v rozevíracím seznamu Sady nástrojů platformy vyberte GCC pro Subsystém Windows pro Linux nebo Clang pro sadu nástrojů Subsystém Windows pro Linux. Pokud vyberete některou z těchto sad nástrojů, Visual Studio neudržuje kopii zdrojových souborů v systému souborů WSL a místo toho přistupuje ke zdrojovým souborům přes připojenou jednotku Windows (/mnt/...). Systémová záhlaví se stále automaticky kopírují do systému souborů Windows, aby poskytovala nativní zážitek IntelliSense. Upravte záhlaví, která jsou zahrnuta nebo vyloučena z této kopie, v Stránkách vlastností>Obecné.

Ve většině případů je nejlepší použít sadu nástrojů WSL 2 s distribucemi WSL 2, protože WSL 2 je pomalejší, když jsou soubory projektu uložené v systému souborů systému Windows. Další informace najdete v tématu Porovnání WSL 1 a WSL 2.

Viz také

Video: Ladění C++ ve spojení s distribucemi WSL 2 a Visual Studio 2022
Stažení sady Visual Studio 2022
Vytvoření projektu CMake Linux v sadě Visual Studio
Kurz: Ladění projektu CMake na vzdáleném počítači s Windows