Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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.
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.
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 zipA
aptfenti parancsok telepítése:- C++ fordító
gdbCMakersynczip- 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:
A Visual Studio Első lépések képernyőjén válassza az Új projekt létrehozása lehetőséget.
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.":::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.
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.jsonfájlt a projekt gyökeréhez. További információ: A CMake-készletek integrációjának engedélyezése.
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".
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.
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.
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.
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.
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.
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.
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.
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."
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.
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.
Bontsa ki a projekt almappát a Megoldáskezelőben. A(z)
CMakeProject.cppfá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:
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:
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:
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