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.
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 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.
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 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.json
nevű 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:
- CMake-projektek szerkesztése és folytatása
- CMake-projektek integrációja
- AddressSanitizer támogatása CMake-projektekhez
- Clang/LLVM támogatása
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.json
A 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.
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, aCMakeCache.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:
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.
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.
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.
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.
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
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.txt
tartalmazó 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.
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.
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.
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.
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 intelliSenseMode
CMakeSettings.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:
Futtassa a megfelelő
vsdevcmd.bat
fájlt (x86/x64). További információ: A Microsoft C++ eszközkészlet használata a parancssorból.Váltson a kimeneti mappára.
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.
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.
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.
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.txt
mellett 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
A főmenüben válassza Fájl > Megnyitás > CMake:
Ez a parancs megjeleníti a CMake importálása a gyorsítótárból varázslót.
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ó: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:
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.
Kattintson a jobb gombbal a
CMakeLists.txt
Megoldá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.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.
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.
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.)
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.
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.
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.
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, aCMakeCache.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:
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:
Futtassa a megfelelő
vsdevcmd.bat
fájlt (x86/x64). További információ: lásd Építés a parancssori felületen.Váltson a kimeneti mappára.
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.
Kapcsolódó tartalom
- oktatóanyag: C++ platformfüggetlen projektek létrehozása a Visual Studio
- 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
-
CMakeSettings.json
séma hivatkozás - 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 referencia
- vcpkg CMake-projektekben
- Csomagok telepítése és használata CMake-kel a Visual Studio-ban