Megosztás:


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

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

A WSL 2 a Linux windowsos alrendszerének (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. A Visual Studio WSL 2-es eszközkészlete lehetővé teszi, hogy a Visual Studio segítségével C++ kódot fordítson és hibakeressen a WSL 2 disztribúciókon SSH-kapcsolat hozzáadása nélkül. A Visual Studio 2019 16.1-es verziójában bevezetett natív WSL 1-es eszközkészlet használatával már kódot fordíthat és hibakeresést végezhet a WSL 1 disztribúciókon.

A Visual Studio WSL 2-es eszközkészlete cMake- és MSBuild-alapú Linux-projekteket is támogat. A CMake a Visual Studióval való összes C++ platformfüggetlen fejlesztéshez ajánlott. A CMake használatát javasoljuk, mert ugyanazt a projektet windowsos, WSL- és távoli rendszereken hozza létre és hibakeresésre használja.

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

WSL 2 eszközkészlet háttere

A Visual Studio C++ platformfüggetlen támogatása feltételezi, hogy az összes forrásfájl a Windows fájlrendszerből származik. A WSL 2 disztribúció megcélzásakor a Visual Studio végrehajt egy helyi rsync parancsot, amely fájlokat másol a Windows fájlrendszerből a WSL fájlrendszerbe. A helyi rsync példány nem igényel felhasználói beavatkozást. Automatikusan megtörténik, amikor a 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álása a Visual Studióban támogatja a WSL 2 eszközkészletet. További információ: CMake-készletek integrációja a Visual Studióban és a Visual Studio Code-ban , valamint A CMake-készletek konfigurálása és összeállítása a Visual Studióban. 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 a Visual Studio CMake bináris üzembe helyezésével fogja telepíteni egy későbbi lépésben.

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

    A apt fenti parancsok telepítése:

    • 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. A Visual Studio 2022 17.0 Előzetes verzió 2-es vagy újabb verziója.

A Visual Studio egy CMake-projektet olyan mappaként definiál, amelynek fájlja CMakeLists.txt a projekt gyökérkönyvtárában található. Ebben az útmutatóban egy új CMake-projektet hoz létre a Visual Studio CMake Project sablonnal:

  1. A Visual Studio Első lépések képernyőjén válassza az Új projekt létrehozása lehetőséget.

    Képernyőkép a Visual Studio 2022 Első lépések párbeszédpaneljéről. Az elérhető 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 ki a CMake-projekt típusát, és válassza a Tovább 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 Presets 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. Ehelyett hozzáadhatott volna 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.

    Képernyőkép a Visual Studio-projekt beállításairól. A Cmake > General elem ki van vá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. A Visual Studio főmenüsávján három legördülő lista található. 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 lekérdezi a WSL-telepítéseket a következővel wsl -l -v: . A következő képen a WSL2: Ubuntu-20.04 ki van jelölve célrendszerként.

    Képernyőkép a Visual Studio célrendszer legördülő listájáról. WSL2: Ubuntu-20.04 van kiválasztva.

    Megjegyzés:

    Ha a Visual Studio automatikusan elkezdi konfigurálni a projektet, olvassa el a 11. lépést a CMake bináris üzembe helyezésének kezeléséhez, majd folytassa az alábbi 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. Az előre beállított beállítások alapján a Visual Studio hogyan hívhatja meg a CMake-t, és hogyan hozhatja létre az alapul szolgáló buildrendszert. A 7. lépésben az aktív beállításkészlet a Visual Studio által létrehozott linuxos alapértelmezett beállításké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.

    Képernyőkép a Visual Studio aktív konfigurálási előre beállított legördülő listájáról. 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 előbeállítások meghatározzák a Visual Studio számára, hogyan hívja meg a buildet. A 7. lépés ábrájában az aktív buildkészlet a Visual Studio által létrehozott alapértelmezett összeállítási beállítás. 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 a projektlétrehozás nem indul el automatikusan, akkor manuálisan hívja meg a Project>Configureproject-name alapján.

    Képernyőkép a Visual Studio-projekt konfigurálási legördülő listájáról. A CMakeProject konfigurálása ki van jelölve.

  9. Ha nincs telepítve a CMake támogatott verziója a WSL 2 disztribúcióra, akkor a Visual Studio kéri, hogy a főmenü menüszalagja alatt helyezze üzembe a CMake legújabb verziójá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.

    Képernyőkép egy üzenetről a Visual Studio eszköztára alatt

    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.

    Képernyőkép a Visual Studio Output ablakáról. A konfigurálási lépés során létrehozott üzeneteket tartalmaz, beleértve a C Make generáció befejezését is.

  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.

    Képernyőkép a Visual Studio hibakeresési legördülő menüjéről. A CMakeProject ki van jelölve.

  12. Bontsa ki a projekt almappá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ó gombjának kiválasztásával, amelyet a következő képernyőképen emel ki:

    Képernyőkép a Visual Studio megoldáskezelőről, amelyen a nézetváltáshoz használható gomb látható. 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 fordul, a végrehajtható elindul a WSL 2 disztrón, a Visual Studio pedig leállítja a végrehajtást a törésponton. 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 konzolablakában 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 létrehozott és hibakeresést végzett egy C++ alkalmazással a WSL 2 és a Visual Studio 2022 használatával.

Speciális WSL 2 és CMake projektek szempontjai

A Visual Studio csak az aktív konfigurációs fájlként használt CMakePresets.json CMake-projektekhez nyújt natív támogatást a WSL 2-hez. A CMakeSettings.json-ról CMakePresets.json-re való migrálásról lásd a Visual Studióban a CMake-készletek integrációjának engedélyezése című útmutatót.

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

Ha forceWSL1Toosletbe van állítva igazra, akkor a Visual Studio nem tartja fenn a forrásfájlok másolatát a WSL fájlrendszerben. Ehelyett a csatlakoztatott Windows-meghajtón (/mnt/...) fér hozzá a forrásfájlokhoz.

A legtöbb esetben a WSL 2 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, például a könyvtár elérési útját a WSL 2-n, ahová a projektet másolják, a forrás másolási beállításait és az rsync parancs argumentumait a Visual Studio Távoli beállítások szállítói térképében CMakePresets.json. További információért lásd a Visual Studio Remote Settings szállítói térképét.

A rendszer automatikusan átmásolja a rendszer fejléceit a Windows fájlrendszerbe a natív IntelliSense-élmény biztosítása érdekében továbbra is. A példányban szereplő vagy abból kizárt fejléceket testre szabhatja a Visual Studio Távoli beállítások szállítói térképen.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 a következőben CMakePresets.json: . A szállítói térkép részleteiért tekintse meg a Visual Studio Távoli beállítások szállítói térképét.

WSL 2 és MSBuild-alapú Linux-projektek

A CMake minden C++ platformfüggetlen fejlesztéshez ajánlott a Visual Studióval, mert lehetővé teszi ugyanazt a projektet Windows, WSL és távoli rendszereken is.

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

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

Képernyőkép egy Visual Studio-legördülő listáról, amelyen a Platform Toolset van kiválasztva, 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, akkor a Platformeszközök legördülő menüben válassza ki a Linuxhoz készült Windows-alrendszerhez készült GCC-t vagy a Linux-alapú Clang-alrendszerhez készült GCC-t. Ha valamelyik eszközkészlet ki van jelölve, a Visual Studio nem tartja fenn a forrásfájlok másolatát a WSL fájlrendszerben, hanem a csatlakoztatott Windows-meghajtón (/mnt/...) keresztül fér hozzá a forrásfájlokhoz. 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

Videó: A C++ hibakeresése a WSL 2 disztribúciókkal és a Visual Studio 2022-vel
Visual Studio 2022 letöltése
CMake Linux-projekt létrehozása a Visual Studióban
Oktatóanyag: CMake-projekt hibakeresése távoli Windows-gépen