Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Visual Studio C és C++ fejlesztése már nem csak Windowshoz készült. Ez az oktatóanyag bemutatja, hogyan használható a Visual Studio for C++ platformfüggetlen fejlesztés Windows és Linux rendszeren. A CMake-en alapul, így nem kell Visual Studio-projekteket alkotnia vagy generálnia. Amikor megnyit egy CMakeLists.txt fájlt tartalmazó mappát, a Visual Studio automatikusan konfigurálja az IntelliSense és a build beállításait. Gyorsan megkezdheti a kód helyi szerkesztését, összeállítását és hibakeresését a Windowsban. Ezután állítsa át a konfigurációt úgy, hogy a Linuxon is ugyanezt tegye, mindezt a Visual Studióban.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- nyílt forráskódú CMake-projekt klónozása a GitHubról
- a projekt megnyitása a Visual Studióban
- végrehajtható cél létrehozása és hibakeresése Windows rendszeren
- kapcsolat hozzáadása Linux-géphez
- ugyanazon cél létrehozása és hibakeresése Linuxon
Előfeltételek
A Visual Studio beállítása platformfüggetlen C++ fejlesztéshez
- Először telepítse a Visual Studiót , és válassza ki a C++ és Linux rendszerű, C++ számítási feladatokkal rendelkező asztali fejlesztést. Ez a minimális telepítés csak 3 GB. A letöltési sebességtől függően a telepítés nem tart tovább 10 percnél.
Linux rendszerű gép beállítása platformfüggetlen C++ fejlesztéshez
A Visual Studio nem igényel linuxos disztribúciót. Az operációs rendszer fizikai gépen, virtuális gépen vagy felhőben is futtatható. Használhatja a Linux windowsos alrendszerét is (WSL). Ehhez az oktatóanyaghoz azonban grafikus környezetre van szükség. A WSL használata itt nem ajánlott, mert elsősorban parancssori műveletekhez készült.
A Visual Studio a Következő eszközöket igényli a Linux-gépen: C++ fordítók,
gdb,ssh,rsync,makeészip. Debian-alapú rendszereken a következő függőségek telepítéséhez használhatja ezt a parancsot:sudo apt install -y openssh-server build-essential gdb rsync make zipA Visual Studio megköveteli a CMake legújabb verzióját a linuxos gépen, amelyen engedélyezve van a kiszolgáló mód (legalább 3.8). A Microsoft létrehoz egy univerzális CMake-buildet, amelyet bármilyen Linux-disztribúcióra telepíthet. Javasoljuk, hogy ezt a buildet használva győződjön meg arról, hogy a legújabb funkciókkal rendelkezik. A CMake bináris fájljait a GitHubon található CMake-adattár Microsoft ágáról szerezheti be. Nyissa meg ezt a lapot, és töltse le a Linux-gép rendszerarchitektúrájának megfelelő verziót, majd jelölje meg végrehajthatóként:
wget <path to binary> chmod +x cmake-3.11.18033000-MSVC_2-Linux-x86_64.shMegtekintheti a szkript futtatásának lehetőségeit a következővel
--help: . Javasoljuk, hogy a-prefixopciót használja a telepítéshez a /usr elérési úton, mert a /usr/bin az az alapértelmezett hely, ahol a Visual Studio a CMake-t keresi. Az alábbi példa a Linux-x86_64 szkriptet mutatja be. Szükség szerint módosítsa, ha másik célplatformot használ.sudo ./cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh --skip-license --prefix=/usr
A Git for Windows telepítve van a Windows-gépére.
Egy GitHub-fiók.
Nyílt forráskódú CMake-projekt klónozása a GitHubról
Ez az oktatóanyag a Bullet Physics SDK-t használja a GitHubon. Ütközésészlelést és fizikai szimulációkat biztosít számos alkalmazáshoz. Az SDK olyan végrehajtható mintaprogramokat tartalmaz, amelyek lefordíthatók és futtathatók anélkül, hogy más kódot kellene írniuk. Ez az oktatóanyag nem módosítja a forráskódot vagy a buildszkripteket. Első lépésként klónozza a Bullet3-adattárat a GitHubról azon a gépen, amelyen telepítve van a Visual Studio.
git clone https://github.com/bulletphysics/bullet3.git
A Visual Studio főmenüjében válassza a Fájl > megnyitása > CMake lehetőséget. Lépjen a
CMakeLists.txtletöltött bullet3-adattár gyökerében található fájlra.
Amint megnyitja a mappát, a mappaszerkezet láthatóvá válik a Megoldáskezelőben.
Ez a nézet pontosan azt mutatja meg, hogy mi van a lemezen, nem logikai vagy szűrt nézetet. Alapértelmezés szerint nem jeleníti meg a rejtett fájlokat.
A mappa összes fájljának megtekintéséhez válassza az Összes fájl megjelenítése gombot.
Váltás célnézetre
A CMake-t használó mappa megnyitásakor a Visual Studio automatikusan létrehozza a CMake-gyorsítótárat. A művelet a projekt méretétől függően eltarthat néhány percig.
A Kimeneti ablakban válassza a Kimenet megjelenítése lehetőséget, majd válassza a CMake lehetőséget a gyorsítótár-létrehozási folyamat állapotának figyeléséhez. Ha a művelet befejeződött, a következőt írja: "Céladatok kinyerése kész".
A művelet befejezése után az IntelliSense konfigurálva lesz. Létrehozhatja a projektet, és hibakeresést végezhet az alkalmazáson. A Visual Studio mostantól megjeleníti a megoldás logikai nézetét a CMakeLists-fájlokban megadott célok alapján.
A MegoldáskezelőMegoldások és mappák gombjával váltson A CMake-célok nézetre.
Így néz ki ez a nézet a Bullet SDK-hoz:
A Célnézet intuitívabb képet nyújt arról, hogy mi található ebben a forrásbázisban. Láthatja, hogy egyes célok könyvtárak, míg mások futtathatók.
Bontsa ki a csomópontot a CMake Targets nézetben a forráskódfájlok megtekintéséhez, bárhol is legyenek ezek a fájlok a lemezen.
Adj hozzá egy explicit Windows x64-Debug konfigurációt
A Visual Studio létrehoz egy alapértelmezett x64-Hibakeresési konfigurációt a Windowshoz. A konfigurációk segítségével a Visual Studio megérti, hogy milyen platformcélt fog használni a CMake-hez. Az alapértelmezett konfiguráció nem jelenik meg a lemezen. Amikor explicit módon hozzáad egy konfigurációt, a Visual Studio létrehoz egy CMakeSettings.jsonnevű fájlt. Az összes megadott konfiguráció beállításai fel lesznek töltve.
Adjon hozzá egy új konfigurációt. Nyissa meg a Konfiguráció legördülő menüt az eszköztáron, és válassza a Konfigurációk kezelése lehetőséget.
Megnyílik a CMake-beállítások szerkesztője . Új konfiguráció hozzáadásához válassza a szerkesztő bal oldalán található zöld pluszjelet. Megjelenik a Konfiguráció hozzáadása a CMakeSettingshoz párbeszédpanel:
Ez a párbeszédpanel a Visual Studio összes konfigurációját, valamint a létrehozott egyéni konfigurációkat jeleníti meg. Ha továbbra is egy x64-Debug konfigurációt szeretne használni, azt adja hozzá elsőként. Válassza az x64-Debug lehetőséget, majd a Kiválasztás gombot. A Visual Studio létrehozza a CMakeSettings.json fájlt egy x64-Debug konfigurációval, és menti a lemezre. A konfigurációkhoz bármilyen nevet használhat, ha közvetlenül a CMakeSettings.json-ben módosítja a névparamétert.
Töréspont beállítása, buildelés és futtatás Windows rendszeren
Ebben a lépésben hibakeresést hajtunk végre egy példaprogramban, amely bemutatja a Bullet Physics könyvtárat.
A Megoldáskezelőben válassza az AppBasicExampleGui lehetőséget, és bontsa ki.
Nyissa meg a fájlt
BasicExample.cpp.Állítson be egy töréspontot, amelyet a futó alkalmazásra kattintva talál el. A kattintási eseményt egy segédosztályon belüli metódus kezeli. A gyors eljutás érdekében:
Válassza ki azt a
CommonRigidBodyBase, amelyből aBasicExampleszerkezet származik. A 30-as vonal körül van.Kattintson a jobb gombbal, és válassza az Ugrás a definícióra parancsot. Most a CommonRigidBodyBase.h fejlécben van.
A forrás fölötti böngészőnézetben látnia kell, hogy Ön a
CommonRigidBodyBase-ben van. A jobb oldalon kiválaszthatja a megvizsgálandó tagokat. Nyissa meg a legördülő menüt, és válassza kimouseButtonCallback, hogy eljusson a függvény definíciójához a fejlécben.
Helyezzen egy töréspontot a függvény első sorára. A rendszer akkor kapja meg a találatot, ha az alkalmazás ablakában egy egérgombra kattint, amikor a Visual Studio hibakeresője alatt fut.
Az alkalmazás elindításához válassza az eszköztár indítási legördülő menüjét. Ez az, amelyen a zöld színjátszás ikonja a "Select Startup Item" (Indítási elem kiválasztása) felirat látható. A legördülő menüben válassza a AppBasicExampleGui.exelehetőséget. A végrehajtható név ekkor megjelenik az indítási gombon:
Válassza a kilövés gombot az alkalmazás és a szükséges függőségek létrehozásához, majd indítsa el a Visual Studio hibakeresőjével. Néhány pillanat múlva megjelenik a futó alkalmazás:
Vigye az egeret az alkalmazásablakba, majd kattintson egy gombra a töréspont aktiválásához. A töréspont visszahozza a Visual Studiót az előtérbe, és a szerkesztő megjeleníti azt a sort, ahol a végrehajtás szünetel. Megvizsgálhatja az alkalmazásváltozókat, objektumokat, szálakat és memóriát, vagy interaktívan végiglépkedhet a kódon. Válassza a Folytatás lehetőséget az alkalmazás folytatásához, majd a szokásos módon való kilépéshez. Vagy állítsa le a végrehajtást a Visual Studióban a leállítás gombbal.
Linux-konfiguráció hozzáadása és csatlakozás a távoli géphez
Adjon hozzá egy Linux-konfigurációt. Kattintson a jobb gombbal a CMakeSettings.json fájlra a Megoldáskezelő nézetben, és válassza a Konfiguráció hozzáadása lehetőséget. Ugyanaz a Konfiguráció hozzáadása a CMakeSettingshoz párbeszédpanel jelenik meg, mint korábban. Ezúttal válassza a Linux-Hibakeresés lehetőséget, majd mentse a CMakeSettings.json fájlt (ctrl + s).
Visual Studio 2019 16.6-os vagy újabb verzió Görgessen le a CMake-beállítások szerkesztőjének aljára, és válassza a Speciális beállítások megjelenítése lehetőséget. Válassza a Unix Makefiles elemetCMake-generátorként, majd mentse a CMakeSettings.json fájlt (ctrl + s).
Válassza a Linux-Hibakeresés lehetőséget a konfigurációs legördülő menüben.
Ha első alkalommal csatlakozik Linux rendszerhez, megjelenik a Csatlakozás távoli rendszerhez párbeszédpanel.
A párbeszédpanelen a gazdagép neve, a port, a felhasználónév, a hitelesítési típus és a jelszó mezői jelennek meg. Az összes mező üres, kivéve, ha a port értéke 22, a hitelesítési típus pedig jelszó.
Ha már hozzáadott egy távoli kapcsolatot, megnyithatja ezt az ablakot az Eszközök > beállításai > platformfüggetlen > kapcsolatkezelőben való navigálással.
Adja meg a linuxos gép kapcsolati adatait , és válassza a Csatlakozás lehetőséget. A Visual Studio hozzáadja a gépet a(z) CMakeSettings.json a Linux-Debug alapértelmezett kapcsolatként. Emellett lekéri a fejléceket a távoli gépről, így a távoli kapcsolathoz tartozó IntelliSense-t kap. Ezután a Visual Studio elküldi a fájlokat a távoli gépre, és létrehozza a CMake-gyorsítótárat a távoli rendszeren. Ezek a lépések a hálózat sebességétől és a távoli gép teljesítményétől függően eltarthatnak egy ideig. Tudja, hogy ez akkor fejeződik be, ha a CMake kimeneti ablakban megjelenik a "Céladatok kinyerése kész" üzenet.
Töréspont beállítása, buildelés és futtatás Linuxon
Mivel ez egy asztali alkalmazás, további konfigurációs információkat kell megadnia a hibakeresési konfigurációhoz.
A CMake Targets nézetben kattintson a jobb gombbal az AppBasicExampleGui elemre, és válassza a Hibakeresés és a Beállítások indítása lehetőséget a rejtett .vs almappában található launch.vs.json fájl megnyitásához. Ez a fájl helyi a fejlesztői környezetben. Ha be szeretné jelentkezni, és menteni szeretné a csapatával, áthelyezheti a projekt gyökerébe. Ebben a fájlban egy konfiguráció lett hozzáadva az AppBasicExampleGui-hoz. Ezek az alapértelmezett beállítások a legtöbb esetben működnek, de itt nem. Mivel ez egy asztali alkalmazás, meg kell adnia néhány további információt a program elindításához, hogy megjelenjen a Linux-gépen.
A linuxos gépen található környezeti változó
DISPLAYértékének megkereséséhez futtassa ezt a parancsot:echo $DISPLAYAz AppBasicExampleGui konfigurációjában található egy "pipeArgs" paramétertömb. A következő sort tartalmazza: "${debuggerCommand}". Ez a parancs indítja el a
gdba távoli gépen. A Visual Studiónak a parancs futtatása előtt exportálnia kell a kijelzőt ebbe a környezetbe. Ha például a megjelenítés értéke az:1, módosítsa a sort az alábbiak szerint:"export DISPLAY=:1;${debuggerCommand}",Indítsa el és hibakeresést végezhet az alkalmazáson. Nyissa meg az Indítási elem kiválasztása legördülő menüt az eszköztáron, és válassza az AppBasicExampleGui lehetőséget. Ezután válassza a zöld lejátszás ikont az eszköztáron, vagy nyomja le az F5 billentyűt. Az alkalmazás és függőségei a távoli Linux-gépre épülnek, majd a Visual Studio hibakeresővel vannak elindítva. A távoli Linux-gépen egy alkalmazásablaknak kell megjelennie.
Vigye az egeret az alkalmazásablakba, és kattintson egy gombra. A töréspontot eltalálták. A programvégrehajtás szünetel, a Visual Studio visszatér az előtérbe, és megjelenik a töréspont. Egy Linux-konzolablaknak is meg kell jelennie a Visual Studióban. Az ablak kimenetet biztosít a távoli Linux-gépről, és
stdinszámára is fogadni tudja a bemenetet. Mint minden Visual Studio-ablakot, oda helyezheti, ahol szeretné látni. Pozíciója a jövőbeli munkamenetekben is megmarad.
Az ablak kimenete azt jelzi, hogy a C11 függvények a dlopen/dlsym használatával dinamikusan betöltve megfelelők, létrejött egy GL 3.0-környezet, és a közvetlen GLX renderelési környezetet sikeresen beállították és jelenleg használatban van. Az ablakban különböző információk találhatók a GL_VENDOR, GL_VERSION, GL_SHADING_LANGUAGE_VERSION és további verziókról.
Megvizsgálhatja az alkalmazás változóit, objektumait, szálait, memóriáját, és interaktívan végiglépkedhet a kódon a Visual Studióval. Ezúttal azonban a helyi Windows-környezet helyett egy távoli Linux-gépen végzi el az egészet. Választhatja a Folytatás lehetőséget, hogy az alkalmazás a szokásos módon folytatódjon és kilépjen, vagy kiválaszthatja a leállítás gombot, ahogyan a helyi végrehajtás esetén is.
Tekintse meg a Hívásverem ablakot, és nézze meg a
x11OpenGLWindowhívásokat, amióta a Visual Studio elindította az alkalmazást Linuxon.
A hívás verem megjeleníti a töréspontot a CommonRigidBodyBase::mouseMoveCallback metóduson, és az azt megelőző hívásokat, mint például az OnMouseMove, X11OpenGLWindow::pumpMessage stb.
A tanultak
Ebben az oktatóanyagban egy kódbázist klónozott közvetlenül a GitHubról. Módosítás nélkül készített, futtatott és hibakeresést végzett a Windowsban. Ezután ugyanazt a kódbázist használta kisebb konfigurációs módosításokkal egy távoli Linux-gépen való buildeléshez, futtatáshoz és hibakereséshez.
Következő lépések
További információ a CMake-projektek konfigurálásáról és hibakereséséről a Visual Studióban:
CMake-projektek a Visual Studióban
Linux CMake-projekt konfigurálása
Csatlakozás távoli Linux-számítógéphez
CMake buildelési beállításainak testreszabása
CMake hibakeresési munkamenetek konfigurálása
Linux-projekt üzembe helyezése, futtatása és hibakeresése
CMake előre definiált konfigurációs referenciavcpkg CMake-projektekbenCsomagok telepítése és használata A CMake használatával a Visual Studióban