Menü Bezárás

CMake projektek a Visual Studio-ban

A C++ CMake tools for Windows komponens a Mappa megnyitása funkciót használja a CMake projektfájlok (például a CMakeLists.txt) közvetlen fogyasztására az IntelliSense és a böngészés céljából. Mind a Ninja, mind a Visual Studio generátorok támogatottak. Ha Visual Studio generátort használ, az egy ideiglenes projektfájlt generál, és átadja az msbuild.exe programnak. A projekt azonban soha nem töltődik be IntelliSense vagy böngészés céljából. Egy meglévő CMake gyorsítótárat is importálhat.

Telepítés

A C++ CMake tools for Windows a Desktop development with C++ és a Linux Development with C++ munkamenetek részeként kerül telepítésre. További információkért lásd: Cross-platform CMake projektek.

További információkért lásd: C++ Linux munkaterhelés telepítése a Visual Studio-ban.

IDE integráció

A Fájl > Megnyitás > Mappa választásával megnyithat egy CMakeListákat tartalmazó mappát.txt fájlt, a következő dolgok történnek:

  • A Visual Studio hozzáadja a Projekt menü CMake elemeit a CMake szkriptek megtekintésére és szerkesztésére szolgáló parancsokkal.

  • A Solution Explorer megjeleníti a mappaszerkezetet és a fájlokat.

  • A Visual Studio futtatja a cmake.exe programot, és létrehozza a CMake cache fájlt (CMakeCache.txt) az alapértelmezett (x64 Debug) konfigurációhoz. A CMake parancssor megjelenik a kimeneti ablakban, a CMake további kimeneteivel együtt.

  • A háttérben a Visual Studio elkezdi indexelni a forrásfájlokat, hogy lehetővé tegye az IntelliSense, a böngészési információk, a refaktorálás stb. használatát. Munka közben a Visual Studio figyeli a változásokat a szerkesztőben és a lemezen is, hogy indexe szinkronban maradjon a forrásokkal.

Mappákat nyithat meg, amelyek tetszőleges számú CMake-projektet tartalmaznak. A Visual Studio felismeri és konfigurálja az összes “gyökér” CMakeLists.txt fájlt a munkaterületén. A CMake műveletek (konfigurálás, építés, hibakeresés), a C++ IntelliSense és a böngészés a munkaterületén található összes CMake projekt számára elérhető.

A projekteket logikusan, célpontok szerint rendszerezve is megtekintheti. Válassza a Célok nézetet a Solution Explorer eszköztár legördülő listájából:

Kattintson a Solution Explorer tetején található Összes fájl megjelenítése gombra, hogy az out/build/<config> mappákban lévő összes CMake által generált kimenetet láthassa.

A Visual Studio egy CMakeSettings.json nevű konfigurációs fájlt használ. Ez a fájl lehetővé teszi, hogy többféle build-konfigurációt definiáljon és tároljon, és kényelmesen váltson közöttük az IDE-ben. A konfiguráció egy Visual Studio-konstrukció, amely egy adott build-típusra jellemző beállításokat foglal magába. A beállítások segítségével konfigurálhatók azok az alapértelmezett parancssori opciók, amelyeket a Visual Studio átad a cmake.exe programnak. Itt további CMake-opciókat is megadhat, és tetszőleges további változókat definiálhat. Minden beállítás belső vagy külső változóként kerül a CMake gyorsítótárába. A Visual Studio 2019-ben a CMake-beállítások szerkesztője kényelmes módot biztosít a beállítások szerkesztésére. További információért lásd: A CMake-beállítások testreszabása.

Egy beállítást, a intelliSenseMode nem adjuk át a CMake-nek, hanem csak a Visual Studio használja.

A CMakeLists.txt fájlt minden projektmappában ugyanúgy használjuk, mint bármely CMake-projektben. Megadhat forrásfájlokat, kereshet könyvtárakat, beállíthat fordító- és linkeropciókat, és megadhat egyéb, a build rendszerrel kapcsolatos információkat.

A futtatható programnak a hibakeresés idején érveket adhat át egy másik, launch.vs.json nevű fájl segítségével. Bizonyos esetekben a Visual Studio automatikusan generálja ezeket a fájlokat. Kézzel is szerkesztheti őket, vagy akár maga is létrehozhatja a fájlt.

Megjegyzés

A nyílt mappás projektek más típusaihoz két további JSON-fájlt használnak: CppProperties.json és tasks.vs.json. Ezek egyike sem releváns a CMake projektek számára.

Meglévő gyorsítótár megnyitása

Ha megnyit egy meglévő CMake gyorsítótár fájlt (CMakeCache.txt), a Visual Studio nem próbálja meg kezelni a gyorsítótárat és az építési fát Ön helyett. Az egyéni vagy preferált eszközei teljes mértékben irányítják, hogy a CMake hogyan konfigurálja a projektjét. Egy meglévő gyorsítótár megnyitásához a Visual Studioban válassza a File > Open > CMake. Ezután navigáljon egy meglévő CMakeCache.txt fájlhoz.

Egy meglévő CMake-cache-t hozzáadhat egy megnyitott projekthez. Ez ugyanúgy történik, mintha egy új konfigurációt adnál hozzá. További információért lásd a meglévő gyorsítótár megnyitásáról szóló blogbejegyzésünket a Visual Studioban.

CMake-projektek építése

A CMake-projekt építéséhez a következő lehetőségek állnak rendelkezésre:

  1. Az Általános eszköztáron keresse meg a Konfigurációk legördülő menüpontot. Valószínűleg alapértelmezés szerint az “x64-Debug” szerepel rajta. Válassza ki a kívánt konfigurációt, és nyomja meg az F5 billentyűt, vagy kattintson a Futtatás (zöld háromszög) gombra az eszköztáron. A projekt először automatikusan felépül, akárcsak egy Visual Studio megoldás.

  2. Jobb egérgombbal kattintson a CMakeLists.txt fájlra, és válassza a kontextusmenüből a Build parancsot. Ha a mappastruktúrában több célpont van, akkor kiválaszthatja, hogy az összeset vagy csak egy adott célpontot építsen.

  3. A főmenüből válassza a Build > Build All (F7 vagy Ctrl+Shift+B) lehetőséget. Győződjön meg róla, hogy egy CMake-célpont már ki van választva az Általános eszköztár Indítási elem legördülő listájában.

Amint az várható, az építési eredmények a Kimeneti ablakban és a Hibalistában jelennek meg.

A több építési célpontot tartalmazó mappában megadhatja, hogy melyik CMake-célpontot építse: A célpont megadásához válassza a CMake menü Build elemét vagy a CMakeLists.txt kontextusmenüt. Ha egy CMake projektben a Ctrl+Shift+B billentyűkombinációt írja be, akkor az aktuálisan aktív dokumentumot építi.

CMake projektek hibakeresése

A CMake projekt hibakereséséhez válassza ki a kívánt konfigurációt, és nyomja meg az F5 billentyűt, vagy nyomja meg a Futtatás gombot az eszköztáron. Ha a Futtatás gombon az “Indítási elem kiválasztása” felirat szerepel, válassza ki a legördülő nyilat. Válassza ki a futtatni kívánt célprogramot. (Egy CMake projektben az “Aktuális dokumentum” opció csak .cpp fájlokra érvényes.)

A Futtatás vagy az F5 parancsok először a projektet építik, ha az előző build óta változtatások történtek. A CMakeSettings.json fájlban bekövetkezett változások hatására a CMake gyorsítótárat újra kell generálni.

A CMake hibakeresési munkamenetet a launch.vs.json fájlban lévő tulajdonságok beállításával testre szabhatja. További információért lásd: CMake hibakeresési munkamenetek konfigurálása.

Just My Code a CMake projektekhez

Ha Windowsra épít az MSVC fordítóval, a CMake projektek támogatják a Just My Code hibakeresést. A Just My Code beállítás megváltoztatásához menjen az Eszközök > Beállítások > Hibakeresés > Általános.

Vcpkg integráció

Ha telepítette a vcpkg-ot, a Visual Studio-ban megnyitott CMake projektek automatikusan integrálják a vcpkg toolchain fájlt. Ez azt jelenti, hogy nincs szükség további konfigurációra a vcpkg használatához a CMake projektjeivel. Ez a támogatás mind a helyi vcpkg-telepítések, mind a megcélzott távoli rendszereken lévő vcpkg-telepítések esetén működik. Ez a viselkedés automatikusan kikapcsolódik, ha bármilyen más toolchain-t ad meg a CMake Settings konfigurációjában.

A konfigurációs visszajelzés testreszabása

A legtöbb konfigurációs üzenet alapértelmezés szerint el van nyomva, hacsak nincs hiba. Az összes üzenetet láthatja, ha engedélyezi ezt a funkciót az Eszközök > Beállítások > CMake-ben.

CMakeLists.txt fájlok szerkesztése

A CMakeLists.txt fájl szerkesztéséhez kattintson a jobb gombbal a fájlra a Solution Explorerben, és válassza a Megnyitás lehetőséget. Ha változtatásokat végez a fájlban, egy sárga státuszsáv jelenik meg, amely tájékoztatja, hogy az IntelliSense frissülni fog. Lehetőséget ad a frissítési művelet visszavonására. A CMakeLists.txt fájlról a CMake dokumentációban talál információkat.

Amint elmenti a fájlt, a konfigurációs lépés automatikusan újra lefut, és megjeleníti az információkat a Kimenet ablakban. A hibák és figyelmeztetések a Hibalistában vagy a Kimenet ablakban jelennek meg. A hibalista hibájára duplán kattintva a CMakeLists.txt fájlban található hibás sorra navigálhat.

CMake konfigurációs lépés

Amikor jelentős módosításokat végez a CMakeSettings.json vagy a CMakeLists.txt fájlokban, a Visual Studio automatikusan újra lefuttatja a CMake konfigurációs lépést. Ha a configure lépés hiba nélkül fejeződik be, az összegyűjtött információk elérhetőek a C++ IntelliSense és a nyelvi szolgáltatások segítségével. Az adatokat a build és debug műveletekben is felhasználják.

Hibaelhárítás a CMake gyorsítótár hibáiban

Ha egy probléma diagnosztizálásához további információkra van szüksége a CMake gyorsítótár állapotáról, nyissa meg a Projekt főmenüjét vagy a Megoldás-kutatóban a CMakeLists.txt kontextusmenüjét, hogy futtassa az alábbi parancsok egyikét:

  • A gyorsítótár megtekintése megnyitja a CMakeCache.txt fájlt a build root mappából a szerkesztőben. (A CMakeCache.txt fájlban itt végzett bármilyen szerkesztés törlődik, ha kitakarítja a gyorsítótárat. A gyorsítótár kitakarítása után is megmaradó módosítások elvégzéséhez lásd a CMake-beállítások testreszabása című részt.)

  • Open Cache Folder (Cache mappa megnyitása) megnyit egy Explorer ablakot a build root mappához.

  • Clean Cache (Cache törlése) törli a build root mappát, így a következő CMake configure lépés egy tiszta gyorsítótárból indul.

  • Generate Cache (Cache generálása) kényszeríti a generálási lépés futtatását akkor is, ha a Visual Studio a környezetet aktuálisnak tartja.

Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Run CMake from the command line

If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Run the appropriate vsdevcmd.bat (x86/x64). For more information, see Building on the Command Line.

  2. Switch to your output folder.

  3. Run CMake to build/configure your app.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük