Megosztás a következőn keresztül:


CMake-projektek a Visual Studióban

CMake egy platformfüggetlen, nyílt forráskódú eszköz a több platformon futó buildfolyamatok meghatározásához. Ez a cikk feltételezi, hogy ismeri a CMake-t. További információt a CMake-ről a CMake dokumentációjábantalál. A CMake oktatóanyag jó kiindulópont a további információkhoz.

Jegyzet

A CMake egyre jobban integrálva lett a Visual Studióval az elmúlt néhány kiadásban. A Visual Studio előnyben részesített verziójának dokumentációját a lap tartalomjegyzékének tetején található Verzió választógomb használatával tekintheti meg.

A Visual Studio CMake natív támogatása lehetővé teszi a CMake-projektek szerkesztését, összeállítását és hibakeresését Windows rendszeren, a Windows-alrendszer linuxos (WSL) és távoli rendszereken a Visual Studio ugyanazon példányából. A CMake-projektfájlokat (például CMakeLists.txt) közvetlenül a Visual Studio használja fel intelliSense és böngészés céljából. A Visual Studio közvetlenül meghívja cmake.exe a CMake konfigurálásához és építéséhez.

Telepítés

A Windows C++ CMake eszközei a C++-os asztali fejlesztés és a C++-os Linux-fejlesztés munkafeladatok részeként települnek. A platformfüggetlen CMake-fejlesztéshez mindkettőre, a Windows C++ CMake-eszközökre és a C++-szal való Linux-fejlesztéshez, szükség van.

A Visual Studio telepítőjének képernyőképe.

A telepítőben a C plus plus legördülő listával rendelkező asztali fejlesztés, valamint a Windowshoz készült C plusz C Make eszközök lesznek kiválasztva."

További információ: A C++ Linux számítási feladat telepítése a Visual Studio.

IDE-integráció

Amikor CMakeLists.txt, a következő dolgok történnek.

Képernyőkép a Visual Studio indításakor megnyíló első párbeszédpanelről.

A párbeszédpanel a következő lehetőségeket kínálja: adattár klónozása, projekt vagy megoldás megnyitása, helyi mappa megnyitása vagy új projekt létrehozása. A képernyőfelvételen ki van emelve egy helyi mappa megnyitása.

  • A Visual Studio CMake elemeket ad hozzá a Project menühöz, és a CMake-szkriptek megtekintésére és szerkesztésére szolgáló parancsokkal.

  • A Megoldáskezelő megjeleníti a mappastruktúrát és a fájlokat.

  • A Visual Studio futtatja a CMake-t, és létrehozza a CMake gyorsítótárfájlt (CMakeCache.txt) az alapértelmezett konfigurációhoz. A CMake parancssor a Kimeneti ablak, valamint a CMake egyéb kimenetei között jelenik meg.

  • A háttérben a Visual Studio elkezdi indexelni a forrásfájlokat az IntelliSense engedélyezéséhez, az információk böngészéséhez, az újrabontáshoz stb. Munka közben a Visual Studio a szerkesztőben és a lemezen is figyeli a változásokat, hogy az index szinkronban maradjon a forrásokkal.

Jegyzet

A Visual Studio 2022 17.1 preview 2-es verziójától kezdve, ha a legfelső szintű CMakeLists.txt egy almappában található, és nem a munkaterület gyökerében, a rendszer megkérdezi, hogy engedélyezni szeretné-e a CMake-integrációt. További információért lásd a CMake részleges aktiválásának-jét.

Miután a CMake-gyorsítótár létrehozása sikeres volt, a projekteket logikailag, célok szerint rendezve is megtekintheti. A Megoldáskezelő eszköztáron válassza a Nézet kiválasztása gombot. A Megoldáskezelő – Nézeteklistájában válassza CMake Targets View lehetőséget, majd nyomja le Enter billentyűt a célnézet megnyitásához:

A Solution Explorer nézetek ablakának képernyőképe. A mappanézet meg van nyitva. A C Make célok nézete lehetőség ki van emelve.

A Megoldáskezelő tetején található Az összes fájl megjelenítése gombot választva megtekintheti az out/build/<config> mappák összes CMake által generált kimenetét.

Használja az CMakeLists.txt fájlt az egyes projektmappákban ugyanúgy, mint bármely CMake-projektben. Megadhatja a forrásfájlokat, megkeresheti a kódtárakat, beállíthatja a fordító és a linker beállításait, és megadhatja a buildrendszerhez kapcsolódó egyéb információkat. A Visual Studio által biztosított CMake nyelvi szolgáltatásokról további információt CMakeLists.txt fájlok szerkesztésecímű témakörben talál.

A Visual Studio egy CMake-konfigurációs fájlt használ a CMake-gyorsítótár létrehozásának és buildeléséhez. További információkért lásd a(z) CMake projektek konfigurálása és a(z) CMake projektek felépítéserészeket.

Ha hibakereséskor szeretne argumentumokat átadni egy végrehajtható fájlnak, használhat egy másik, launch.vs.jsonnevű fájlt. A platformfüggetlen CMake-projektek Visual Studióban történő hibakereséséről további információt CMake-projektek hibakeresésecímű témakörben talál.

A Visual Studio és a C++ nyelvi funkcióinak többségét a Visual Studio CMake-projektjei támogatják. Ilyenek például a következők:

Jegyzet

Más típusú Open Folder-projektek esetén egy további JSON-fájl CppProperties.json használható. Ez a fájl nem releváns CMake-projektekhez.

CMake-projektek konfigurálása

A CMake konfigurálási lépése létrehozza a projekt buildelési rendszerét. Ez egyenértékű a parancssorból cmake.exe meghívásával. A CMake konfigurálási lépésével kapcsolatos további információkért tekintse meg a CMake dokumentációját.

A Visual Studio egy CMake konfigurációs fájlt használ a CMake generálásához és összeállításához. CMakePresets.json a Visual Studio 2019 16.10-es vagy újabb verziója támogatja, és ez az ajánlott CMake-konfigurációs fájl. A CMakePresets.json-t közvetlenül a CMake támogatja, és használható a CMake generálásának és építésének vezérlésére a Visual Studio-ból, a VS Code-ból, egy folyamatos integrációs folyamatból, valamint a parancssorból Windows, Linux és Mac alatt. További információkért lásd: CMakePresets.jsonA CMake-előbeállítások konfigurálása és összeállítása. CMakeSettings.json a Visual Studio egy korábbi verzióját használó ügyfelek számára érhető el. További információ a(z) CMakeSettings.json-ról/ről: lásd a CMake buildbeállítások testreszabásarészt.

Ha jelentős módosításokat hajt végre a CMake-konfigurációs fájlon vagy egy CMakeLists.txt-fájlon, a Visual Studio automatikusan futtatja a CMake konfigurálási lépését. A konfigurálási lépést manuálisan is meghívhatja: Válassza Project > Gyorsítótár konfigurálása az eszköztárról. A konfigurációs beállításokat az Eszközök>Beállítások>CMake>Általánoslapon is módosíthatja.

Képernyőkép a Visual Studio beállítások ablakának C Make konfigurációs beállításairól.

A C Make konfigurálási beállításai ki vannak hívva. A C gyorsítótár-értesítések megjelenítése ki van választva. A "Ha a gyorsítótár elavult", a "Soha ne futtassa automatikusan a konfigurálási lépést" lehetőség van kiválasztva.

Ha a konfigurálási lépés hiba nélkül fejeződik be, akkor az elérhető információk a C++ IntelliSense és nyelvi szolgáltatásokat hajtják végre. A buildelési és hibakeresési műveletekhez is használják.

Egy meglévő CMake-gyorsítótárat is megnyithat a Visual Studióban. További információ: Meglévő gyorsítótár megnyitása.

Konfigurációs visszajelzések és értesítések testreszabása

Alapértelmezés szerint a legtöbb konfigurációs üzenet el lesz tiltva, hacsak nincs hiba. Az összes üzenet megtekintéséhez válassza az Eszközök>Beállítások>CMake>Részletes CMake diagnosztikai kimenet engedélyezéselehetőséget.

Az összes CMake-gyorsítótár-értesítést (aranysávokat) letilthatja, ha törli a CMake gyorsítótár értesítéseinek megjelenítése opció jelölését.

A Célok nézet forráscsoportjainak testreszabása

Alapértelmezés szerint a CMake-célok nézet figyelmen kívül hagyja a következő forráscsoportokat: Forrásfájlok, Fejlécfájlok, Erőforrások, Objektumfájlok. Ezek a csoportok alapértelmezés szerint szerepelnek a legtöbb CMake-projektben, és szükségtelenül növelik a Célnézetben való navigáláshoz szükséges kattintások számát.

A forráscsoportok használatát a következőképpen engedélyezheti: Eszközök>Beállítások>CMake>Az figyelmen kívül hagyott forráscsoportok használatának engedélyezése a CMake célok nézetben.

CMake cache hibáinak elhárítása

Ha további információra van szüksége a CMake-gyorsítótár állapotáról a probléma diagnosztizálásához, nyissa meg a Project főmenüt vagy a CMakeLists.txt helyi menüt Megoldáskezelő az alábbi parancsok egyikének futtatásához:

  • View CMakeCache.txt megnyitja a CMakeCache.txt fájlt a szerkesztő buildkönyvtárából. Az itt, a CMakeCache.txt-on végzett módosítások törlődnek, ha törli a gyorsítótárat. A gyorsítótár tisztítása után is megmaradó módosításokról CMake-beállítások testreszabása vagy Konfigurálás és létrehozás cMake-beállításokkalcímű témakörben olvashat.

  • Gyorsítótár törlése és újrakonfigurálása törli a buildkönyvtárat, és újrakonfigurálja a tiszta gyorsítótárból.

  • Gyorsítótár konfigurálása a generálási lépés futtatására kényszerít, még akkor is, ha a Visual Studio naprakésznek ítéli a környezetet.

CMake-projektek létrehozása

A CMake buildelési lépése egy már létrehozott projekt bináris fát hoz létre. Ez egyenértékű a parancssorból cmake --build meghívásával. A CMake buildelési lépésével kapcsolatos további információkért tekintse meg CMake dokumentációját.

CMake-projekt létrehozásához az alábbi lehetőségek közül választhat:

  1. Az eszköztáron keresse meg az Indítási elem legördülő elemet. Válassza ki az előnyben részesített célt, és nyomja le F5, vagy válassza a Futtatás gombot az eszköztáron. A projekt automatikusan elkészül először, akárcsak egy Visual Studio megoldás.

  2. Kattintson a jobb gombbal a CMake-célra a Megoldáskezelő-ban, amikor a CMake-célnézet aktív, és válassza a Felépítés lehetőséget a helyi menüből.

  3. A főmenüben válassza a Build > Build Alllehetőséget. Győződjön meg arról, hogy a CMake-cél már be van jelölve az eszköztár Indítási elem legördülő listájában.

Ahogy várható volt, a build eredményei megjelennek a Kimeneti ablakban és a Hibalistában.

Képernyőkép a Visual Studio hibalista ablakáról

C Megjelenítheti az adatvesztést okozó átalakításokra vonatkozó összeállítási figyelmeztetéseket, például lebegőpontosról egész számmá való konvertálást.

Buildbeállítások szerkesztése

A Visual Studio egy CMake-konfigurációs fájlt használ a CMake-buildek futtatásához. A CMake konfigurációs fájljai olyan buildelési lehetőségeket foglalnak össze, mint a natív buildelési eszköz kapcsolói és környezeti változói. Ha CMakePresets.json az aktív konfigurációs fájl, olvassa el a Konfigurálás és buildelés CMake-készletekkelcímű témakört. Ha CMakeSettings.json az aktív konfigurációs fájl, olvassa el CMake buildbeállítások testreszabásacímű témakört. CMakePresets.json a Visual Studio 2019 16.10-es vagy újabb verziójában érhető el, és az ajánlott CMake-konfigurációs fájl.

CMake-projektek hibakeresése

Az összes végrehajtható CMake-cél megjelenik az eszköztár Indítási elem legördülő listájában. A hibakeresés megkezdéséhez válasszon egyet, és nyomja le a Hibakeresés > Hibakeresés indítása gombot az eszköztáron. A CMake-projektekben az Aktuális dokumentum beállítás csak .cpp fájlokra érvényes.

Képernyőkép a Visual Studio hibakeresési legördülő listájáról.

A legördülő menüben a következő lehetőségek közül választhat: Hibakeresési célok megjelenítése/ elrejtése, aktuális dokumentum, minták (amelyek kiemeltek), box2d_tests és minták –noGUI.

A Hibakeresési vagy F5 parancs először létrehozza a projektet, ha az előző build óta történtek módosítások. A CMake konfigurációs fájlban történő bármilyen (CMakePresets.json vagy CMakeSettings.json) vagy CMakeLists.txt módosítás a CMake gyorsítótár újragenerálását eredményezi.

A CMake hibakeresési munkamenetét testre szabhatja a launch.vs.json fájl tulajdonságainak beállításával. Ha egy adott célpont hibakeresési beállításait szeretné testre szabni, válassza ki a célpontot az Indítási elem legördülő listájában, majd válassza a Hibakeresés > Hibakeresési és indítási beállítások az <aktív célponthoz>opciót. További információ a CMake hibakeresési munkamenetekről: CMake hibakeresési munkamenetek konfigurálása.

Just My Code a CMake projektekhez

Ha az MSVC-fordítóval készít windowsos buildet, a CMake-projektek támogatják a Just My Code hibakeresését. A Just My Code beállítás módosításához lépjen Eszközök>Beállítások>Hibakeresés>Általános. További információ a Just My Code hibakereséséről: Hibakeresés csak a saját kódra fókuszálva a Just My Code használatával.

CMake-projektek szerkesztése és folytatása

Amikor Windowsra készít buildet az MSVC-fordítóval, a CMake projektek támogatják az "Edit és Continue" funkciót. A szerkesztés és a folytatás engedélyezéséhez adja hozzá a következő kódot a CMakeLists.txt fájlhoz.

if(MSVC)
  target_compile_options(<target> PUBLIC "/ZI")
  target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()

A szerkesztésről és a folytatásról további információt a Szerkesztés és folytatás konfigurálása (C#, VB, C++)című témakörben talál.

Csatolás Linuxon futó CMake-projekthez

A Visual Studio lehetővé teszi egy távoli Linux rendszeren vagy WSL-n futó folyamat hibakeresését, és a GDB hibakeresővel való hibakeresését. Első lépésként válassza a Hibakeresési>Csatolás a folyamathoz...lehetőséget, állítsa a kapcsolattípustSSH-, és válassza ki a kapcsolati cél a Kapcsolatkezelő kapcsolatlistájából. Válasszon ki egy folyamatot az elérhető folyamatok listájából, és nyomja le Csatolásbillentyűt. A GDB-t telepíteni kell a Linux rendszerű gépen. További információ az SSH-kapcsolatokról: Connection Manager

Képernyőkép a Visual Studióban a Folyamat csatolása menüről.

A párbeszédpanelen a következő lehetőségek érhetők el: Kapcsolat típusa (SSH-ra van állítva), a kapcsolati cél (demo@ 172-re van állítva. 20. 60. 6), valamint az elérhető folyamatok listája, amelyekhez csatolható."

CMake részleges aktiválása

A Visual Studio 2022 17.1-es és újabb verzióiban a CMake funkció nem engedélyezett automatikusan, ha a gyökérmappája nem tartalmaz CMakeLists.txt fájlt. Ehelyett egy párbeszédpanel megkérdezi, hogy szeretné-e engedélyezni a CMake funkciót a projekthez. Ha elutasítja, a CMake-gyorsítótár létrehozása nem indul el, és a CMake-konfigurációk (CMakeSettings.json vagy CMakePresets.json) nem jelennek meg a konfiguráció legördülő listájában. Ha elfogadja, egy munkaterületszintű konfigurációs fájlba kerül, CMakeWorkspaceSettings.json (amely a .vs könyvtárban van tárolva), és megadja azokat a mappákat, amelyekhez engedélyezni szeretné a CMake-t. (Ezek a mappák tartalmazzák a gyökér CMakeLists.txt fájlokat).

Az elfogadott tulajdonságok a következők:

Ingatlan Leírás
enableCMake Engedélyezze a Visual Studio integrációját ehhez a munkaterülethez.
sourceDirectory Egy sztring vagy sztringek tömbje, amely megadja a könyvtárat vagy könyvtárakat CMakeLists.txt. Makrók (például ${workspaceRoot}) engedélyezettek. A relatív elérési utak a munkaterület gyökerén alapulnak. A rendszer figyelmen kívül hagyja az aktuális munkaterületen kívüli könyvtárakat.

A(z) CMakeWorkspaceSettings.json bármikor elérhető a(z) Project>CMake-munkaterület beállításai menüparancson keresztül, még akkor is, ha a CMake funkcionalitás jelenleg le van tiltva.

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

Egy meglévő CMake-gyorsítótárfájl (CMakeCache.txt) megnyitásakor a Visual Studio nem próbálja kezelni a gyorsítótárat és a buildfát. Az egyéni vagy előnyben részesített eszközök teljes mértékben szabályozják, hogy a CMake hogyan konfigurálja a projektet.

Meglévő CMake-gyorsítótárat adhat hozzá egy megnyitott projekthez. Ugyanúgy történik, mint egy új konfiguráció hozzáadása. További információkért tekintse meg a meglévő gyorsítótár megnyitásáról szóló blogbejegyzést a Visual Studio.

Jegyzet

Az alapértelmezett meglévő gyorsítótár élmény a cmake-server-ra támaszkodik, amelyet a CMake 3.20-as verziójában eltávolítottak. A Visual Studio 2019 16.10-es és újabb verziójában a meglévő gyorsítótárfunkciók használatának folytatásához hajtsa végre az alábbi lépések egyikét:

  • A CMake 3.19-es vagy újabb verziójának manuális telepítése. Ezután állítsa be a cmakeExecutable tulajdonságot a meglévő gyorsítótár-konfigurációban a CMake ezen verziójának használatára.
  • A meglévő gyorsítótár-konfigurációban állítsa be a cacheGenerationCommand tulajdonságot, hogy a Visual Studio kérje le a szükséges CMake-fájlalapú API-fájlokat. A tulajdonsággal kapcsolatos további információkért lásd a CMakeSettings.json hivatkozást.
  • Lekérdezésfájl használatával kérje le a CMake fájlalapú API-fájlokat a gyorsítótár létrehozásakor a Visual Studióban való megnyitás előtt. A lekérdezések fájl utasításait a következő szakaszban találja, Speciális CMake gyorsítótárhiba-elhárítás.

Speciális CMake-gyorsítótár hibaelhárítása

A Visual Studio a CMake fájlalapú API- (a 3.14-es és újabb verziókban) segítségével tölti fel a szerkesztőt a projektstruktúrára vonatkozó információkkal. További információkért tekintse meg a C++ csapat blogbejegyzését többgyökerű munkaterületekről és a fájlalapú API-.

A CMake-gyorsítótár létrehozása előtt előfordulhat, hogy az egyéni vagy előnyben részesített eszközöknek létre kell hozniuk egy .cmake/api/v1/query/client-MicrosoftVS/query.json nevű lekérdezésfájlt a build kimeneti mappájában (a CMakeCache.txttartalmazó mappában). A lekérdezésfájlnak tartalmaznia kell ezt a tartalmat:

{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}

Amikor az egyéni vagy előnyben részesített eszközei generálják a gyorsítótárat, a CMake a .cmake/api/v1/response alá helyezi azokat a fájlokat, amelyeket a Visual Studio használ a projektstruktúrához tartozó információkkal való szerkesztői feltöltéshez.

CMakeLists.txt fájlok szerkesztése

Ha szerkeszteni szeretne egy CMakeLists.txt fájlt, kattintson a jobb gombbal a fájlra Megoldáskezelő, és válassza a Megnyitáslehetőséget. Ha módosítja a fájlt, megjelenik egy sárga állapotsor, és tájékoztatja, hogy az IntelliSense frissülni fog. Ez lehetőséget ad a frissítési művelet megszakítására. További információért a CMakeLists.txt, lásd a CMake dokumentációját.

Képernyőkép a Visual Studióban szerkesztett C Make Lists TXT fájlról.

Tartalmazza a lines projektet (hello-cmake), az add_subdirectory (tesztek), az add_executable (hello hello.cpp) és az install (TARGETS hello DESTINATION hello/bin) parancsokat. Az ablak tetején egy üzenet azt jelzi, hogy a c plus és az IntelliSense információk frissülnek, miután a C Make befejezi a gyorsítótár generálását.

A fájl mentése után a konfigurációs lépés automatikusan újrafut, és megjeleníti az információkat a Kimeneti ablakban. Hibák és figyelmeztetések jelennek meg a Hibalista vagy Kimenet ablakban. Duplán kattintson a Hibalistában egy hibára, hogy a hibás sorra navigáljon a CMakeLists.txt-ben.

Képernyőkép a Visual Studio hibalistájában található C make hibáról.

A CMakeLists.txt 3. sorában egy C Make hibaüzenet jelenik meg. A részletek az, hogy a C Make nem talált az sqlite3 által biztosított csomagkonfigurációs fájlt. A CMake a CMAKE_MODULE_PATH-ban kereste, de nem találta meg. Javasoljuk, hogy adja hozzá az "sqlite3" telepítési előtagot CMAKE_PREFIX_PATH vagy állítsa be a sqlite3_DIR egy sqlite3Config.cmake és/vagy sqlitet3-config.cmake könyvtárba.

Nyelvi szolgáltatások a CMake-hez

A CMake nyelvi szolgáltatásai a Visual Studio 2019 16.5-ös vagy újabb verziójában érhetők el. A nyelvi szolgáltatások támogatják az olyan kódnavigációs funkciókat, mint például a Ugrás a definícióra, Definíció bepillantása, és Az összes hivatkozás megkeresése a CMake-változókhoz, függvényekhez és célokhoz CMake-szkriptfájlokban. További információ: CMake-szkriptek kódnavigációja.

Képernyőkép a Visual Studio Minden hivatkozás keresése ablakáról.

SUPERTUX_SOURCES_CXX megtalálásának eredményei láthatók. Például list(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) és így tovább.

CMake projektek kezelése

A CMake projektmanipuláció a Visual Studio 2019 16.5-ös vagy újabb verziójában érhető el. A projektmanipuláció lehetővé teszi forrásfájlok és célok hozzáadását, eltávolítását és átnevezését a CMake-projektben a CMake-szkriptek manuális szerkesztése nélkül. Amikor fájlokat ad hozzá vagy távolít el a Megoldáskezelőből, a Visual Studio automatikusan módosítja a CMake-projektet. Több hely is lehet, ahol érdemes hozzáadni vagy eltávolítani egy CMake-szkriptre mutató hivatkozást. Ha igen, a Visual Studio megkérdezi, hogy hol szeretné elvégezni a módosítást, és megjeleníti a javasolt módosítások előnézetét. Részletes útmutatásért tekintse meg Fájlok és célok hozzáadása, eltávolítása és átnevezése cMake-projektekcímű témakört.

Képernyőkép a Visual Studio Előzetes verzió módosításai párbeszédpanelről.

A fanézetben a CMakeLists.txtlátható, amely alatt két elem található: az add_executable és a set. A beállítás be van jelölve. Az előnézeti ablakban láthatók a módosítások helyei. A sorkészlet, amelyet a PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" sor tartalmaz, a záró zárójel előtt kiemeli a "Demo.cpp" fájlt. Az Alkalmaz gomb elfogadja a módosítást, vagy megnyomhatja a Mégse gombot.

IntelliSense CMake-projektekhez

A Visual Studio alapértelmezés szerint az IntelliSense módot használja, amely megfelel az aktív CMake-konfiguráció által megadott fordító- és célarchitektúrának.

Ha CMakePresets.json az aktív CMake-konfigurációs fájl, akkor a Visual Studio Beállítások szállítói térképének intelliSenseMode és intelliSenseOptions használatával megadhatja az IntelliSense beállításait. További információért lásd a Visual Studio beállítások szállítói térkép hivatkozást.

Ha CMakeSettings.json az aktív CMake-konfigurációs fájl, akkor a intelliSenseModeCMakeSettings.json használatával megadhatja az IntelliSense beállításait. A további információkért lásd: CMakeSettings.json referencia.

Az IntelliSense konfigurálása CMake-eszközláncfájlokkal

A Visual Studio 2019 16.9-es és újabb verzióiban a Visual Studio automatikusan CMake-változók alapján konfigurálja az IntelliSense-t CMake-projektekben, amikor CMake-eszközláncfájlt használ. További információ: Az IntelliSense konfigurálása CMake Toolchain-fájlokkal.

Vcpkg-integráció

A Visual Studióban megnyitott CMake-projektek integrálhatók a VCPKG-vel, egy platformfüggetlen C/C++ függőségkezelővel. Mielőtt vcpkg-t használna a Visual Studióval, futtatnia kell vcpkg integrate install. A vcpkg-vel kapcsolatos utasításokért és további információkért lásd:

Ha CMakeSettings.json az aktív konfigurációs fájl, a Visual Studio automatikusan átadja a vcpkg eszközláncfájlt (vcpkg.cmake) a CMake-nek. Ez a viselkedés automatikusan le lesz tiltva, ha a CMake-beállítások konfigurációjában más eszközláncot is megad.

Ha a CMakePresets.json az aktív konfigurációs fájl, be kell állítania a vcpkg.cmake elérési útját a CMakePresets.json-ben. Javasoljuk, hogy a VCPKG_ROOT környezeti változót használja az abszolút elérési út helyett, hogy a fájl megosztható maradjon. További információkért lásd: Vcpkg-integráció engedélyezése a CMake-készletekkel. CMakePresets.json a Visual Studio 2019 16.10-es vagy újabb verziójában érhető el, és az ajánlott CMake-konfigurációs fájl.

CMake futtatása a parancssorból

Ha CMakePresets.json az aktív CMake-konfigurációs fájl, akkor egyszerűen reprodukálhatja a helyi buildeket a Visual Studión kívül. További információkért lásd: CMake futtatása parancssorból vagy CI-folyamatból. CMakePresets.json a Visual Studio 2019 16.10-es vagy újabb verziójában támogatott, és ez az ajánlott CMake-konfigurációs fájl.

Ha CMakeSettings.json az aktív CMake-konfigurációs fájl, manuálisan kell átadnia a CMakeSettings.json fájlban kódolt argumentumokat a CMake-nek. Ha a CMake-t a Visual Studio Installerből telepítette, az alábbi lépések végrehajtásával futtathatja a parancssorból:

  1. Futtassa a megfelelő vsdevcmd.bat fájlt (x86/x64). További információ: A Microsoft C++ eszközkészlet használata a parancssorból.

  2. Váltson a kimeneti mappára.

  3. Futtassa a CMake-t az alkalmazás létrehozásához vagy konfigurálásához.

A Visual Studio 2017 gazdag támogatást nyújt a CMake-hez, beleértve platformfüggetlen CMake-projekteket. A Visual C++ Tools for CMake összetevő a Mappa megnyitása funkcióval teszi lehetővé, hogy az IDE közvetlenül az IntelliSense és a böngészés céljából használja fel a CMake-projektfájlokat (például CMakeLists.txt). A Ninja és a Visual Studio generátorok is támogatottak. Ha Visual Studio-generátort használ, az létrehoz egy ideiglenes projektfájlt, és átadja az MSBuildnek. A projekt azonban soha nem töltődik be IntelliSense vagy böngészési célokra. Egy meglévő CMake-gyorsítótárat is importálhat.

Telepítés

Visual C++ Tools for CMake a C++ használatos asztali fejlesztési és Linux-fejlesztési munkaterhelések részeként van telepítve.

Képernyőkép a Visual Studio Installerről. Az Egyes összetevők lap ki van jelölve, amelyen a Visual C plus plus tools for C Make van kiválasztva.

További információ: A C++ Linux számítási feladat telepítése a Visual Studio.

IDE-integráció

Amikor a következőket választja: Fájl > Megnyitás > Mappa megnyitása egy CMakeLists.txt fájlt tartalmazó mappa megnyitásához, a következő történik:

  • A Visual Studio hozzáad egy CMake menüelemet a főmenühöz, amelyben a CMake-szkriptek megtekintésére és szerkesztésére szolgáló parancsok használhatók.

  • Megoldáskezelő megjeleníti a mappastruktúrát és a fájlokat.

  • A Visual Studio opcionálisan futtatja a CMake-et, és létrehozza a CMake cache-t az alapértelmezett konfigurációban, amely az x86 Hibakeresés. A CMake parancssor a Kimeneti ablak, valamint a CMake egyéb kimenetei között jelenik meg.

  • A háttérben a Visual Studio elkezdi indexelni a forrásfájlokat az IntelliSense engedélyezéséhez, az információk böngészéséhez, az újrabontáshoz stb. Munka közben a Visual Studio a szerkesztőben és a lemezen is figyeli a változásokat, hogy az index szinkronban maradjon a forrásokkal.

Tetszőleges számú CMake-projektet tartalmazó mappákat nyithat meg. A Visual Studio észleli és konfigurálja a munkaterület összes legfelső szintű CMakeLists.txt fájlját. A CMake-műveletek (konfigurálás, buildelés, hibakeresés), a C++ IntelliSense és a böngészés a munkaterület összes CMake-projektjéhez elérhetők.

Visual Studio Solution Explorer képernyőképe.

A C Make projekt fájljai és mappái láthatók. Van egy "tests" nevű alkönyvtár, CMakeLists.txtés hello.cpp. Van egy hello-cmake-vcpkg mappa, amely CMakeLists.txt, CMakeSettings.jsonés hello.cpp tartalmaz.

A projekteket a célok szerint logikusan rendszerezve is megtekintheti. A Megoldáskezelő eszköztár legördülő menüjében válassza a Célok nézet opciót.

Képernyőkép a CMake-célok nézetbeállítást kínáló Visual Studio Solution Explorer legördülő gombjáról. Melyik van kiválasztva.

A Visual Studio egy CMakeSettings.json nevű fájlt használ a CMake környezeti változóinak vagy parancssori beállításainak tárolására. CMakeSettings.json több CMake-buildkonfiguráció definiálásához és tárolásához is lehetővé teszi. Az IDE-ben kényelmesen válthat közöttük.

Ellenkező esetben ugyanúgy használja a CMakeLists.txt, mint bármely CMake-projektben a forrásfájlok megadásához, a kódtárak kereséséhez, a fordító és a linker beállításainak megadásához, valamint a buildrendszerhez kapcsolódó egyéb információk megadásához.

Ha argumentumokat kell átadnia egy végrehajthatónak a hibakeresés során, használhat egy másik fájlt, amelynek neve launch.vs.json. Bizonyos esetekben a Visual Studio automatikusan létrehozza ezeket a fájlokat. Manuálisan szerkesztheti őket, vagy akár saját maga is létrehozhatja a fájlt.

Jegyzet

Más típusú Open Folder-projektek esetén két további JSON-fájlt használunk: CppProperties.json és tasks.vs.json. Ezek egyike sem releváns a CMake-projektekhez.

Meglévő gyorsítótár importálása

Meglévő CMakeCache.txt fájl importálásakor a Visual Studio automatikusan kinyeri a testre szabott változókat, és ezek alapján létrehoz egy előre feltöltött CMakeSettings.json fájlt. Az eredeti gyorsítótár semmilyen módon nem módosul. Továbbra is használható a parancssorból, vagy bármilyen eszközzel vagy IDE-vel, amellyel létrehozhatja. Az új CMakeSettings.json fájl a projekt gyökér CMakeLists.txtmellett található. A Visual Studio létrehoz egy új gyorsítótárat a beállításfájl alapján. Az automatikus gyorsítótár-létrehozást felülbírálhatja az Eszközök > Beállítások > CMake > Általános párbeszédpanelen.

Nem minden elem kerül importálásra a gyorsítótárból. Az olyan tulajdonságok, mint a generátor és a fordítók helye, olyan alapértelmezett értékekre cserélődnek, amelyekről ismert, hogy jól működnek az IDE-vel.

Meglévő gyorsítótár importálása

  1. A főmenüben válassza Fájl > Megnyitás > CMake:

    A Visual Studio főmenüjének képernyőképe a C Make beállítással.

    Ez a parancs megjeleníti a CMake importálása a gyorsítótárból varázslót.

  2. Lépjen az importálni kívánt CMakeCache.txt fájlra, majd válassza az OKlehetőséget. Megjelenik a CMake-projekt importálása a gyorsítótárból varázsló:

    A CMake projekt importálása a gyorsítótár varázslóból képernyőképe. Az importálandó CMake projekt könyvtár elérési útja a mappa szövegmezőjében található.

    Miután a varázsló befejeződött, az új CMakeCache.txt fájl megjelenik a Megoldáskezelőben a gyökér *CMakeLists.txt* fájl mellett a projektben.

CMake-projektek létrehozása

CMake-projekt létrehozásához az alábbi lehetőségek közül választhat:

  1. Az Általános eszköztáron keresse meg a Konfigurációk legördülő menüt. Valószínűleg alapértelmezés szerint Linux-Hibakeresési vagy x64-Hibakeresési van beállítva. Válassza ki az előnyben részesített konfigurációt, és nyomja le F5, vagy válassza a futtatása (zöld háromszög) gombot az eszköztáron. A projekt automatikusan elkészül először, akárcsak egy Visual Studio megoldás.

  2. Kattintson a jobb gombbal a CMakeLists.txtMegoldáskezelőben, és válassza a Felépítés lehetőséget a helyi menüből. Ha több cél is szerepel a mappastruktúrában, dönthet úgy, hogy az összeset vagy csak egy adott célt hozza létre.

  3. A főmenüben válassza Build > Build Solution (F7 vagy Ctrl+Shift+B). Győződjön meg arról, hogy a CMake-cél már ki van jelölve az Indítási elem legördülő listában az Általános eszköztáron.

Képernyőkép a Visual Studio Megoldáskezelőről, miután a jobb gombbal kattintottak a CMakeLists.txt fájlra.

A menü olyan lehetőségeket kínál, mint a Hozzáadás, a Megnyitás, a Feladatok konfigurálása, a Felépítés, az Összes tisztítás stb.

A buildkonfigurációkat, környezeti változókat, parancssori argumentumokat és egyéb beállításokat testre szabhatja a CMakeSettings.json fájlban. Lehetővé teszi, hogy módosításokat végezzen anélkül, hogy módosítaná a CMakeLists.txt fájlt. További információ: CMake buildbeállítások testreszabása.

Ahogy várható volt, a builderedmények megjelennek a Kimeneti ablak és hibalista.

Képernyőkép a Visual Studio hibalista ablakáról.

C Megjelenítheti az adatvesztést okozó átalakításokra vonatkozó összeállítási figyelmeztetéseket, például a lebegőpontosról egész számmá való konvertálást.

Több buildpéldányt tartalmazó mappában megadhatja, hogy melyik CMake-cél legyen létrehozva: Válassza ki a Build elemet a CMake menüben vagy a CMakeLists.txt helyi menüben a cél megadásához. Ha egy CMake-projektben Ctrl+Shift+B ad meg, az létrehozza az aktuális aktív dokumentumot.

CMake-projektek hibakeresése

CMake-projekt hibakereséséhez válassza ki az előnyben részesített konfigurációt, és nyomja le F5. Vagy nyomja le a Futtatás gombot az eszköztáron. Ha a Futtatás gombon az áll, hogy Indítási elem kiválasztása, kattintson a legördülő nyílra, és válassza ki a futtatni kívánt programot. (CMake-projektekben az Aktuális dokumentum beállítás csak .cpp fájlokra érvényes.)

Képernyőkép a C Make projekt Indítási elem kiválasztása legördülő listájáról. Kiválaszthatja az aktuális dokumentumot vagy a hello-cmake fájlt.

A futtatás vagy F5 parancsai először megépítik a projektet, ha az előző build óta módosításokat hajtottak végre.

A CMake hibakeresési munkamenetét testre szabhatja a launch.vs.json fájl tulajdonságainak beállításával. További információ: CMake hibakeresési munkamenetek konfigurálása.

CMakeLists.txt fájlok szerkesztése

Ha szerkeszteni szeretne egy CMakeLists.txt fájlt, kattintson a jobb gombbal a fájlra Megoldáskezelő, és válassza a Megnyitáslehetőséget. Ha módosítja a fájlt, megjelenik egy sárga állapotsor, és tájékoztatja, hogy az IntelliSense frissülni fog. Ez lehetőséget ad a frissítési művelet megszakítására. További információért a CMakeLists.txt, lásd a CMake dokumentációját.

Képernyőkép a Visual Studióban szerkesztett C make Lists fájlról.

A fájl tartalmazza a projektet (hello-cmake), az add_subdirectory parancsot (tests), az add_executable parancsot (hello hello.cpp), és az install parancsot (TARGETS hello DESTINATION hello/bin). Az ablak tetején egy üzenet azt jelzi, hogy a c plus és az IntelliSense információk frissülnek, miután a C Make befejezi a gyorsítótár generálását.

A fájl mentése után a konfigurációs lépés automatikusan újrafut, és megjeleníti az információkat a Kimeneti ablakban. Hibák és figyelmeztetések jelennek meg a Hibalista vagy Kimenet ablakban. Duplán kattintson a Hibalistában egy hibára, hogy a hibás sorra navigáljon a CMakeLists.txt-ben.

Képernyőkép a Visual Studio hibalistájában található C make hibáról.

A CMakeLists.txt 3. sorában egy C Make hibaüzenet jelenik meg. A részletek az, hogy a C Make nem találja az sqlite3 által biztosított csomagkonfigurációs fájlt. A CMake a CMAKE_MODULE_PATH-ban kereste, de nem találta meg. Javasoljuk, hogy adja hozzá az "sqlite3" telepítési előtagot CMAKE_PREFIX_PATH vagy állítsa be a sqlite3_DIR egy sqlite3Config.cmake és/vagy sqlitet3-config.cmake könyvtárba.

CMake-konfigurálási lépés

Ha jelentős módosítások történnek a CMakeSettings.json vagy a CMakeLists.txt fájlokon, a Visual Studio automatikusan újrafuttatja a CMake konfigurálási lépését. Ha a konfigurálási lépés hiba nélkül befejeződik, az összegyűjtött információk a C++ IntelliSense és nyelvi szolgáltatásokban érhetők el. A buildelési és hibakeresési műveletekhez is használják.

Több CMake-projekt is használhatja ugyanazt a CMake-konfigurációnevet (például x86-Debug). A konfiguráció kiválasztásakor mindegyik konfigurálva és felépítve van (a saját build gyökérmappájában). Az adott CMake-konfigurációban részt vevő összes CMake-projekt céljain hibakeresést hajthat végre.

Képernyőkép a Visual Studio főmenüjéről, megnyitva a

A helyi menüben látható, hogy mit lehet felépíteni. Ebben az esetben hello-cmake-a \ hello-cmake.exe (Project hello-cmake) and hello-cmake-b\hello-cmake.exe (Project hello-cmake). Az utóbbi ki van emelve.

A buildeket és a hibakeresési munkameneteket a munkaterület projektjeinek egy részhalmazára korlátozhatja. Hozzon létre egy új konfigurációt egyedi névvel a CMakeSettings.json fájlban. Ezután csak ezekre a projektekre alkalmazza a konfigurációt. A konfiguráció kiválasztásakor az IntelliSense és a buildelési és hibakeresési parancsok csak a megadott projektekre vonatkoznak.

CMake cache hibáinak elhárítása

Ha további információra van szüksége a CMake-gyorsítótár állapotáról a probléma diagnosztizálásához, nyissa meg a CMake főmenüt vagy a CMakeLists.txt helyi menüt Megoldáskezelő az alábbi parancsok egyikének futtatásához:

  • Gyorsítótár megtekintése megnyitja a CMakeCache.txt fájlt a buildgyökérmappából a szerkesztőben. Az itt, a CMakeCache.txt-on végzett módosítások törlődnek, ha törli a gyorsítótárat. A gyorsítótár tisztítása után is megmaradó módosításokról CMake-beállítások testreszabásacímű témakörben olvashat.

  • Gyorsítótár mappa megnyitása megnyit egy Explorer-ablakot a build gyökérmappájában.

  • Tiszta gyorsítótár törli a build gyökérmappáját, hogy a következő CMake-konfigurálási lépés tiszta gyorsítótárból induljon.

  • Gyorsítótár létrehozása a létrehozási lépés futtatására kényszeríti, még akkor is, ha a Visual Studio naprakésznek tekinti a környezetet.

Az automatikus gyorsítótár-létrehozás le van tiltva az Eszközök > Beállítások > CMake > Általános párbeszédpanelen.

Egyetlen fájl kompilálása

Ha egyetlen fájlt szeretne létrehozni egy CMake-projektben, kattintson a jobb gombbal a fájlra Megoldáskezelő. Az előugró menüben válassza Fordítás lehetőséget. A jelenleg megnyitott fájlt a fő CMake menüvel is létrehozhatja a szerkesztőben:

Képernyőkép a CMake fordítás környezetfüggő menüjéről. Egy bejegyzést tartalmaz, Bullet 3 Collision.

CMake futtatása a parancssorból

Ha a CMake-t a Visual Studio Installerből telepítette, az alábbi lépések végrehajtásával futtathatja a parancssorból:

  1. Futtassa a megfelelő vsdevcmd.bat fájlt (x86/x64). További információ: lásd Építés a parancssori felületen.

  2. Váltson a kimeneti mappára.

  3. Futtassa a CMake-t az alkalmazás létrehozásához vagy konfigurálásához.

A Visual Studio 2015-ben a Visual Studio felhasználói egy CMake-generátorral hozhatnak létre MSBuild projektfájlokat, amelyeket az IDE ezután az IntelliSense, a böngészés és a fordítás során használ fel.