Útmutató: C++ buildelése és hibakeresése A WSL 2 és Visual Studio 2022 használatával

Visual Studio 2022 egy natív C++ eszközkészletet vezet be Linuxos Windows-alrendszer 2. verzió (WSL 2) fejlesztéséhez. Ez az eszközkészlet már elérhető a Visual Studio 2022 17.0 vagy újabb verziójában.

A WSL 2 a Linuxos Windows-alrendszer (WSL) új, ajánlott verziója. Jobb linuxos fájlrendszer-teljesítményt, grafikus felhasználói felületi támogatást és teljes rendszerhívási kompatibilitást biztosít. Visual Studio WSL 2-es eszközkészlete lehetővé teszi, hogy a Visual Studio használatával SSH-kapcsolat hozzáadása nélkül készítsen és hibakeressen C++ kódot a WSL 2 disztribúciókon. A WSL 1 disztribúciókon már létrehozhat és hibakeresést végezhet C++ kóddal a natív WSL 1 eszközkészlet használatával, amely a 2019-es Visual Studio 16.1-es verziójában jelent meg.

Visual Studio WSL 2-es eszközkészlete cMake- és MSBuild-alapú Linux-projekteket is támogat. A CMake-et javasoljuk az összes C++ platformfüggetlen fejlesztéshez a Visual Studio-val. A CMake-t azért javasoljuk, mert ugyanazt a projektet Windows, WSL és távoli rendszereken építi és hibakeresi.

A témakör információit bemutató videó a Video: C++ hibakeresése a WSL 2 disztribúciókkal és Visual Studio 2022.

WSL 2 eszközkészlet háttere

A C++ platformfüggetlen támogatása Visual Studio feltételezi, hogy az összes forrásfájl a Windows fájlrendszerből származik. A WSL 2 disztribúció megcélzásakor Visual Studio végrehajt egy helyi rsync parancsot, a Windows fájlrendszerből a WSL fájlrendszerbe való másolásához. A helyi rsync példány nem igényel felhasználói beavatkozást. Automatikusan megtörténik, ha Visual Studio észleli, hogy WSL 2-disztribúciót használ. A WSL 1 és a WSL 2 közötti különbségekről további információt a WSL 1 és a WSL 2 összehasonlítása című témakörben talál.

A CMake Presets integráció a Visual Studio-ban támogatja a WSL 2 eszközkészletet. További információ: CMake-készletek integrációja Visual Studio és Visual Studio Code és Konfigurálás és buildelés a CMake-készletekkel a Visual Studio. Ebben a cikkben az Advanced WSL 2 és A CMake-projektek szempontjai között további információk is találhatók.

A buildelési eszközök telepítése

Telepítse a WSL 2-n való létrehozáshoz és hibakereséshez szükséges eszközöket. A CMake legújabb verzióját egy későbbi lépésben telepítheti Visual Studio CMake bináris üzembe helyezésével.

  1. Telepítse a WSL-t és egy WSL 2-disztribúciót a WSL telepítésével kapcsolatos utasítások követésével.

  2. A Visual Studio telepítőjében ellenőrizze, hogy telepítve van-e a C++ CMake tools for Linux. Ehhez válassza a Modify lehetőséget a Visual Studio verziójához. Az Egyes összetevők lapon keresse meg a Linuxhoz és Machez készült C++ CMake-eszközöket , és győződjön meg arról, hogy ki van jelölve és telepítve. Ez az összetevő szükséges ahhoz, hogy Visual Studio észlelje a WSL-telepítéseket.

  3. Feltételezve, hogy a disztribúciója használja apt (ez az útmutató az Ubuntut használja), a következő parancsokkal telepítse a szükséges fordítóeszközöket a WSL 2 disztribúcióra:

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

    Amely telepíti a következőt:

    • C++ fordító
    • gdb
    • CMake
    • rsync
    • zip
    • Egy mögöttes buildrendszer-generátor

Platformfüggetlen CMake-fejlesztés WSL 2 disztribúcióval

Ez az útmutató GCC-t és Ninja-t használ az Ubuntu-on. És a Visual Studio 2022 17.0 előzetes kiadás 2-es vagy újabb verziója.

Visual Studio egy CMake-projektet olyan mappaként definiál, amely a projekt gyökérkönyvtárában található CMakeLists.txt fájllal rendelkezik. Ebben az útmutatóban egy új CMake-projektet hozunk létre a Visual Studio CMake Project sablon használatával.

  1. A Visual Studio Kezdett képernyőn válassza a Új projekt létrehozása lehetőséget.

    A 2022- Visual Studio első lépések párbeszédpanel képernyőképe. A rendelkezésre álló lehetőségek a következők: Adattár klónozása, Projekt vagy megoldás megnyitása, Helyi mappa megnyitása, Új projekt létrehozása vagy Folytatás kód nélkül:::

  2. A Sablonok keresése szövegmezőbe írja be a "cmake" kifejezést. Válassza a CMake Project típust, és válassza a Next lehetőséget. Adjon nevet és helyet a projektnek, majd válassza a Létrehozás lehetőséget.

  3. Engedélyezze a Visual Studio CMake-előbeállítások integrációját. Válassza az Eszközök>beállításai>CMake>Általános lehetőséget. Válassza a CMake-előbeállítások használatának előnyben részesítése konfiguráláshoz, építéshez és teszteléshez, majd válassza az OK gombot. Másik lehetőségként hozzáadhat egy CMakePresets.json fájlt a projekt gyökeréhez. További információ: A CMake-készletek integrációjának engedélyezése.

    A Visual Studio projektbeállítások képernyőképe. A Cmake > Általános lehetőség van kiválasztva.

    A CMake konfigurációs fájlcsoportjában meg van jelölve és ki van választva, hogy "Használja a CMake előbeállításokat, ha elérhetők, egyébként a CMakeSettings.jsonhasználata".

  4. Az integráció aktiválásához válassza a főmenü Fájlbezárás>mappája lehetőséget. Megjelenik az Első lépések lap. A Legutóbbiak megnyitása csoportban válassza ki az imént bezárt mappát a mappa újbóli megnyitásához.

  5. Három legördülő lista található a Visual Studio főmenüsávján. Az aktív célrendszer kiválasztásához használja a bal oldali legördülő menüt. Ez az a rendszer, amelyben a CMake meghívása történik a projekt konfigurálásához és létrehozásához. A Visual Studio wsl -l -v segítségével érdeklődik a WSL-telepítések iránt. A következő képen a WSL2: Ubuntu-20.04 ki van jelölve célrendszerként.

    A Visual Studio célrendszer legördülő listájának képernyőképe. Az Ubuntu-20.04 van kiválasztva a WSL2 alatt.

    Megjegyzés:

    Ha Visual Studio elkezdi automatikusan konfigurálni a projektet, olvassa el a 11. lépést a CMake bináris üzembe helyezésének kezeléséhez, majd folytassa a következő lépéssel. Ennek a viselkedésnek a testreszabásához lásd: Automatikus konfiguráció és gyorsítótár-értesítések módosítása.

  6. A középső legördülő menüben válassza ki az aktív beállításkészletet. A beállításkészletek megadják a Visual Studio-nak, hogyan hívja meg a CMake-et, és hogyan hozza létre a mögöttes build rendszert. A 7. lépésben az aktív beállításkészlet a linux-default Visual Studio által létrehozott készlet. Egyéni beállításkészlet létrehozásához válassza a Konfigurációk kezelése... Az előre beállított beállítások konfigurálásáról további információt a Beállításkészletek konfigurálása és a Készletek szerkesztése című témakörben talál.

    A Visual Studio aktív konfiguráció előre beállított legördülő listájának képernyőképe. A Konfigurációk kezelése... van kiválasztva.

  7. A jobb oldali legördülő menüből válassza ki az aktív Build előbeállítást. A build beállítások elmagyarázzák a Visual Studio számára, hogyan hívhatja meg a buildet. A 7. lépés ábrájában az aktív buildkészlet a Default Visual Studio által létrehozott buildkészlet. A buildbeállításokkal kapcsolatos további információkért lásd: Buildkészlet kiválasztása.

  8. Konfigurálja a projektet a WSL 2-ben. Ha nem indul el automatikusan a projekt generálása, akkor kézzel hívja meg a konfigurálást Project>Configureproject-name

    A Visual Studio projekt konfigurálási legördülő listájának képernyőképe. A „CMakeProject konfigurálása” van kiválasztva.

  9. Ha nincs telepítve a CMake támogatott verziója a WSL 2 disztribúcióra, akkor Visual Studio a főmenü menüszalagja alatt kéri a CMake legújabb verziójának üzembe helyezését. Válassza az Igen lehetőséget a CMake bináris fájljainak a WSL 2-es disztribúcióban való üzembe helyezéséhez.

    A Visual Studio eszköztár alatti parancssor képe

    A felhasználót megkérdezik, hogy szeretné-e telepíteni a legújabb CMake bináris fájlokat a CMake-ből. szervezet, mert a támogatott C Make verzió nincs telepítve."

  10. Ellenőrizze, hogy a konfigurálási lépés befejeződött-e, és hogy a CMake-létrehozás befejeződött üzenete látható-e a CMake panel Kimenet ablakában. A buildfájlok a WSL 2 disztribúció fájlrendszerének egyik könyvtárába vannak írva.

    A Visual Studio kimeneti ablakának képernyőképe. A konfigurálási lépés során generált üzeneteket tartalmaz, beleértve a CMake folyamat befejeződését.

  11. Válassza ki az aktív hibakeresési célt. A hibakeresési legördülő menü felsorolja a projekt számára elérhető összes CMake-célt.

    A Visual Studio hibakeresési legördülő menü képernyőképe. A CMakeProject van kiválasztva.

  12. Nyissa meg a projekt almappáját a Megoldáskezelő-ben. A(z) CMakeProject.cpp fájlban állítson be egy töréspontot a(z) main() elemben. A CMake-célok nézetre is navigálhat a Megoldáskezelő nézetválasztó gombra kattintva, amelyet a következő képernyőképen emel ki:

    A nézetváltáshoz használható gombot megjelenítő Visual Studio megoldáskezelő képernyőképe. A kezdőlap gombtól jobbra található.

  13. Válassza a Hibakeresés>indítása lehetőséget, vagy nyomja le az F5 billentyűt. A projekt felépül, a végrehajtható elindul a WSL 2 disztribúción, és a Visual Studio megáll a töréspontnál. A program kimenete (ebben az esetben "Hello CMake.") látható a Linux konzolablakban:

    Képernyőkép egy futó hello world programról.

    A Visual Studio Linux konzolablakban megjelenik a program kimenete: "Hello C Make". A szerkesztőablakban a hello world program látható. A végrehajtás leállt egy töréspontnál a vonalon, amely a 0 értéket adja vissza."

Most már létrehozott és hibakeresést végzett egy C++ alkalmazással a WSL 2 és Visual Studio 2022 használatával.

Speciális WSL 2 és CMake projektek szempontjai

Visual Studio csak natív támogatást biztosít a WSL 2-hez olyan CMake-projektekhez, amelyek aktív konfigurációs fájlként CMakePresets.json használnak. A CMakeSettings.json-ről CMakePresets.json-be való migráláshoz lásd: Enable CMake Presets integration in Visual Studio.

Ha WSL 2-disztribúciót céloz meg, és nem szeretné használni a WSL 2-eszközkészletet, akkor a Visual Studio Remote Settings térképén, CMakePresets.json-nál, állítsa be a forceWSL1Toolset értékét true-re. További információ: Visual Studio Távoli beállítások szállítói térkép.

Ha forceWSL1Tooslet értéke true, akkor Visual Studio nem tartja fenn a forrásfájlok másolatát a WSL fájlrendszerben. Ehelyett a csatlakoztatott Windows meghajtón lévő forrásfájlokat éri el (/mnt/...).

A legtöbb esetben a WSL 2-es eszközkészletet érdemes WSL 2-disztribúciókkal használni, mert a WSL 2 lassabb, ha a projektfájlokat inkább a Windows fájlrendszerben tárolják. A WSL 2 fájlrendszerbeli teljesítményével kapcsolatos további információkért lásd: A WSL 1 és a WSL 2 összehasonlítása.

Adja meg a speciális beállításokat, mint például a WSL 2 könyvtár elérési útját, ahová a projektet másolják, a forrás másolási beállításait, és az rsync parancsértelmező argumentumait a Visual Studio Távoli beállítások konfigurációs térképén CMakePresets.json. További információ: Visual Studio Távoli beállítások szállítói térkép.

A rendszer továbbra is automatikusan átmásolja a rendszerfejléceket a Windows fájlrendszerbe, hogy biztosítsa a natív IntelliSense-élményt. Az ebben a másolatban szereplő vagy kizárt fejléceket testre szabhatja a Visual Studio Távoli beállítások szállítói térképében a CMakePresets.json.

Módosíthatja az IntelliSense módot, vagy más IntelliSense-beállításokat is megadhat a Visual Studio Beállítások szállítói térképen CMakePresets.json. A szállítói térképről további információt a Visual Studio Távoli beállítások szállítói térkép című témakörben talál.

WSL 2 és MSBuild-alapú Linux-projektek

A CMake minden C++ platformfüggetlen fejlesztéshez ajánlott, Visual Studio mivel lehetővé teszi ugyanazt a projektet Windows, WSL- és távoli rendszereken való létrehozását és hibakeresését.

De lehet, hogy msBuild-alapú Linux-projektje van.

Ha MSBuild-alapú Linux-projektje van, akkor frissíthet a WSL 2 eszközkészletre Visual Studio. Kattintson a jobb gombbal a projektre a megoldáskezelőben, majd válassza a Tulajdonságok>általános>platformeszközkészletet:

A Visual Studio legördülő lista képernyőképe a Platform Toolsettel, jobbra pedig egy másik legördülő lista, amelyen a WSL2 Toolset van kiválasztva.

Ha WSL 2-disztribúciót céloz meg, és nem szeretné használni a WSL 2 eszközkészletet, majd a Platform Toolset legördülő listában válassza ki a GCC for Linuxos Windows-alrendszer vagy Clang for Linuxos Windows-alrendszer eszközkészletet. Ha valamelyik eszközkészlet ki van választva, Visual Studio nem tartja fenn a forrásfájlok másolatát a WSL fájlrendszerben, hanem a csatlakoztatott Windows meghajtón keresztül fér hozzá a forrásfájlokhoz (/mnt/...). A rendszer továbbra is automatikusan átmásolja a rendszerfejléceket a Windows fájlrendszerbe, hogy natív IntelliSense-élményt biztosítson. Testre szabhatja a másolatban szereplő vagy abból kizárt fejléceket a Property Pages>Generalban.

A legtöbb esetben a WSL 2-es eszközkészletet érdemes WSL 2-disztribúciókkal használni, mert a WSL 2 lassabb, ha a projektfájlokat a Windows fájlrendszerben tárolják. További információ: A WSL 1 és a WSL 2 összehasonlítása.

Lásd még

Video: C++ hibakeresése a WSL 2 disztribúciókkal és Visual Studio 2022
Letöltés Visual Studio 2022
CMake Linux-projekt létrehozása a Visual Studio
Tutorial: CMake-projekt hibakeresése távoli Windows gépen