Návod: Sestavení a ladění C++ pomocí WSL 2 a 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 Visual Studio umožňuje používat Visual Studio k sestavení a ladění kódu C++ v distribucích WSL 2 bez přidání připojení SSH. Pomocí nativní sady nástrojů WSL 1 už můžete sestavit a ladit kód C++ na distribucích WSL 1 zavedených v Visual Studio 2019 verze 16.1.

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

Videoprezentace informací v tomto tématu najdete v tématu Video: Ladění C++ s distribucemi WSL 2 a Visual Studio 2022.

Pozadí sady nástrojů WSL 2

Podpora jazyka C++ pro různé platformy v Visual Studio předpokládá, že všechny zdrojové soubory pocházejí ze systému souborů Windows. Při cílení na distribuci WSL 2 spustí Visual Studio místní příkaz rsync 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ž 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 Visual Studio podporuje sadu nástrojů WSL 2. Další informace najdete v tématu integrace předvoleb CMake v Visual Studio a Visual Studio Code a Konfigurování a sestavování pomocí předvoleb CMake v 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. Novou verzi CMake nainstalujete pomocí nasazení binárních souborů CMake od Visual Studio v pozdějším kroku.

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

  2. V instalačním programu Visual Studio ověřte, že jsou nainstalované nástroje CMake C++ pro Linux. Chcete-li to provést, vyberte Upravit pro svou verzi Visual Studio. Na kartě Jednotlivé komponenty vyhledejte nástroje CMake C++ pro Linux a Mac a ujistěte se, že je vybraný a nainstalovaný. Tato komponenta je nutná pro Visual Studio k detekci instalací WSL.

  3. 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
    

    Které instalace:

    • 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 souborem CMakeLists.txt v kořenovém adresáři projektu. V tomto názorném postupu vytvoříte nový project CMake pomocí šablony Visual Studio CMake Project:

  1. Na obrazovce Visual Studio Zahajte vyberte Vytvořit nový projekt.

    Screenshot úvodního dialogového okna Visual Studio 2022. Dostupné možnosti jsou: Klonovat úložiště, otevřít projekt nebo řešení, otevřít místní složku, vytvořit nový projekt, nebo pokračovat bez kódu.

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

  3. Povolte integraci předvoleb CMake 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. Případně můžete 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 v aplikaci Visual Studio. CMake > Obecné je vybráno.

    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 panelu nabídky Visual Studio jsou tři rozbalovací 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. Visual Studio dotazy na instalace WSL pomocí wsl -l -v. Na následujícím obrázku je WSL2: Ubuntu-20.04 zobrazen jako cílový systém.

    Screenshot rozevíracího seznamu Visual Studio cílového systému. WSL2: Ubuntu-20.04 je vybraný.

    Poznámka:

    Pokud Visual Studio začne automaticky konfigurovat projekt, přečtěte si krok 11 pro správu binárního nasazení CMake a pokračujte následujícím krokem. 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. Konfigurace předvoleb říká Visual Studio, jak používat CMake a vytvořit základní systém sestavení. V kroku 7 je aktivní konfigurační předvolba linux-default, vytvořené v Visual Studiu. 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 rozevíracího seznamu aktivního nastavení konfigurace ve 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í programu Visual Studio, jak vyvolat sestavení. Na obrázku pro krok 7 je aktivní předvolba sestavení Default vytvořená pomocí 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, ručně vyvolejte konfiguraci s Project>Konfigurujteproject-name

    Screenshot rozevíracího seznamu konfigurace projektu Visual Studio. Konfigurace CMakeProject je vybraná.

  9. Pokud ve své distribuci WSL2 nemáte nainstalovanou podporovanou verzi CMake, Visual Studio vás pod hlavní nabídkovou lištou vyzve k nasazení aktuální verze CMake. Pokud chcete nasadit binární soubory CMake do distribuce WSL 2, vyberte Ano .

    Screenshot výzvy pod panelem nástrojů 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.

    Screenshot okna výstupu Visual Studio. Obsahuje zprávy generované během kroku konfigurace, včetně toho, že generování C Make je dokončeno.

  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.

    Screenshot rozbalovací nabídky ladění ve Visual Studio. CMakeProject je vybráno.

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

    Screenshot průzkumníka řešení Visual Studio zobrazující 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í proces při bodu přerušení. 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 Visual Studio Linuxu 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 pouze pro projekty CMake, které používají CMakePresets.json jako aktivní konfigurační soubor. Pokud chcete migrovat z CMakeSettings.json na CMakePresets.json, podívejte se na Enable CMake Presets integration in Visual Studio.

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

Pokud je forceWSL1Tooslet nastavena na 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 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ů Windows. Další informace o výkonu systému souborů ve WSL 2 najdete v tématu Porovnání WSL 1 a WSL 2.

Zadejte pokročilá nastavení, jako je cesta k adresáři ve WSL 2, kam se projekt kopíruje, možnosti kopírování zdroje a argumenty příkazu rsync, v mapě poskytovatele vzdálených nastavení Visual Studio v CMakePresets.json. cs-CZ: Další informace najdete v tématu mapa dodavatele pro vzdálená nastavení ve Visual Studio.

Systémová záhlaví se stále automaticky zkopírují do systému souborů Windows, aby bylo možné poskytnout nativní prostředí IntelliSense. Záhlaví zahrnuté nebo vyloučené z této kopie můžete přizpůsobit ve vizualizaci mapy dodavatele pro vzdálená nastavení Visual Studio v CMakePresets.json.

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

Projekty LINUX založené na WSL 2 a MSBuild

CMake se doporučuje pro veškerý vývoj napříč platformami C++ s Visual Studio, protože umožňuje sestavovat a ladit stejný projekt na Windows, WSL a vzdálených systémech.

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

Pokud máte linuxový projekt založený na MSBuildu, můžete upgradovat na sadu nástrojů WSL 2 v 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:

Screenshot rozevíracího seznamu Visual Studio s vybranou Platform Toolset a vpravo další rozevírací seznam s vybranou WSL2 Toolset.

Pokud cílíte na distribuci WSL 2 a nechcete používat sadu nástrojů WSL 2, vyberte v rozevíracím seznamu Platform Toolset sadu nástrojů GCC pro Subsystém Windows pro Linux nebo Clang pro 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 a poskytují tak nativní prostředí 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ů Windows. Další informace najdete v tématu Porovnání WSL 1 a WSL 2.

Viz také

Video: Ladění C++ s distribucemi WSL 2 a Visual Studio 2022
Download Visual Studio 2022
Vytvoření projektu CMake Linux v Visual Studio
Tutorial: Ladění projektu CMake na vzdáleném počítači Windows