Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
CMake je multiplatformní opensourcový nástroj pro definování procesů sestavení, které běží na více platformách. Tento článek předpokládá, že znáte CMake. Další informace o CMake najdete v dokumentaci k CMake. Kurz CMake je dobrým výchozím bodem pro další informace.
Note
CMake se stala více a více integrovaná se sadou Visual Studio v posledních několika verzích. Pokud chcete zobrazit dokumentaci pro upřednostňovanou verzi sady Visual Studio, použijte selektor verzí umístěný v horní části obsahu na této stránce.
Nativní podpora sady Visual Studio pro CMake umožňuje upravovat, sestavovat a ladit projekty CMake ve Windows, subsystému Windows pro Linux (WSL) a vzdálených systémů ze stejné instance sady Visual Studio. Soubory projektu CMake (například CMakeLists.txt) jsou využívány Visual Studiem přímo pro potřeby IntelliSense a procházení. Visual Studio volá cmake.exe přímo pro konfiguraci a sestavení CMake.
Installation
Nástroje CMake C++ pro Windows se instalují jako součást vývoje desktopových aplikací s úlohami C++ a Vývoje pro Linux s C++ . Oba nástroje CMake C++ pro vývoj pro Windows i Linux s C++ jsou vyžadovány pro vývoj CMake pro různé platformy.
V instalačním programu je vybrán rozevírací seznam pro vývoj desktopových aplikací s C++ a jsou vybrány nástroje CMake pro Windows.
Další informace naleznete v tématu Instalace úlohy C++ Linux v sadě Visual Studio.
Integrace integrovaného vývojového prostředí (IDE)
Když otevřete složku obsahující CMakeLists.txt soubor, stane se následující věci.
Dialogové okno nabízí tyto možnosti: klonování úložiště, otevření projektu nebo řešení, otevření místní složky nebo vytvoření nového projektu. Možnost "Otevřít místní složku" je ve snímku obrazovky zvýrazněna.
Visual Studio přidá položky CMake do nabídky Projektu s příkazy pro zobrazení a úpravu skriptů CMake.
Průzkumník řešení zobrazí strukturu složek a soubory.
Visual Studio spustí CMake a vygeneruje soubor mezipaměti CMake (
CMakeCache.txt) pro výchozí konfiguraci. Příkazový řádek CMake se zobrazí v okně Výstup spolu s dalším výstupem z CMake.Visual Studio začne indexovat zdrojové soubory, aby bylo možné povolit IntelliSense, informace o procházení, refaktoring atd., a to na pozadí. Během práce Visual Studio monitoruje změny v editoru a také na disku, aby se jeho index synchronizoval se zdroji.
Note
Počínaje sadou Visual Studio 2022 verze 17.1 Preview 2 platí, že pokud vaše nejvyšší úroveň CMakeLists.txt existuje v podsložce a ne v kořenovém adresáři pracovního prostoru, zobrazí se výzva, jestli chcete povolit integraci CMake, nebo ne. Další informace najdete v tématu Částečná aktivace CMake.
Po úspěšném generování mezipaměti CMake můžete také zobrazit projekty uspořádané logicky podle cílů. Na panelu nástrojů Průzkumník řešení zvolte tlačítko Vybrat zobrazení. V seznamu v Průzkumník řešení – zobrazení vyberte zobrazení cílů CMake a stisknutím klávesy Enter otevřete zobrazení cílů:
Zobrazení můžete také přepínat tak, že kliknete pravým tlačítkem na libovolný soubor nebo složku v Průzkumníku řešení a vyberete Přepnout do zobrazení cílů CMake.
Výběrem tlačítka Zobrazit všechny soubory v horní části Průzkumník řešení zobrazíte všechny výstupy vygenerované pomocí CMake ve out/build/<config> složkách.
CMakeLists.txt Soubor použijte v každé složce projektu stejně jako v jakémkoli projektu CMake. Můžete zadat zdrojové soubory, najít knihovny, nastavit možnosti kompilátoru a linkeru a zadat další informace související se systémem sestavení. Další informace o jazykových službách CMake poskytovaných sadou Visual Studio najdete v tématu Úpravy CMakeLists.txt souborů.
Visual Studio používá ke generování a sestavení mezipaměti CMake konfigurační soubor CMake. Další informace najdete v tématu Konfigurace projektů CMake a sestavování projektů CMake.
Pokud chcete předat argumenty spustitelnému souboru v době ladění, můžete použít jiný soubor s názvem launch.vs.json. Další informace o ladění projektů CMake napříč platformami v sadě Visual Studio najdete v tématu Ladění projektů CMake.
Většina jazykových funkcí sady Visual Studio a C++ je podporována projekty CMake v sadě Visual Studio. Mezi příklady patří:
- Upravit a pokračovat pro projekty CMake
- Integrace incredibuildu pro projekty CMake
- Podpora AddressSanitizer pro projekty CMake
- Podpora Clang/LLVM
Note
U jiných typů projektů Open Folder se používá další soubor CppProperties.json JSON. Tento soubor není relevantní pro projekty CMake.
Konfigurace projektů CMake
Krok konfigurace CMake vygeneruje systém sestavení projektu. Je to ekvivalent volání cmake.exe z příkazového řádku. Další informace o kroku konfigurace CMake najdete v dokumentaci ke CMake.
Visual Studio používá konfigurační soubor CMake k řízení generování a sestavení CMake.
CMakePresets.json podporuje Visual Studio 2019 verze 16.10 nebo novější a je doporučeným konfiguračním souborem CMake.
CMakePresets.json je přímo podporován nástrojem CMake a dá se použít k řízení generování a sestavování CMake ze sady Visual Studio, z editoru VS Code, v prostředí kontinuální integrace a z příkazového řádku ve Windows, Linuxu a macOS. Další informace najdete v tématu CMakePresets.json.
CMakeSettings.json je k dispozici pro zákazníky používající starší verzi sady Visual Studio. Další informace najdete v tématu CMakeSettings.json.
Když provedete významné změny v konfiguračním souboru CMake nebo v souboru CMakeLists.txt, Visual Studio automaticky spustí krok konfigurace CMake. Krok konfigurace můžete vyvolat ručně: Na panelu nástrojů vyberte > projektu. Předvolby konfigurace můžete změnit také v >nástrojích Možnosti>Obecné.
Nastavení konfigurace CMake jsou zdůrazněna. Je vybrána možnost Zobrazovat upozornění na CMake cache. V části Když je mezipaměť zastaralá je vybrána možnost Nikdy automaticky nespouštět krok konfigurace.
Pokud se krok konfigurace dokončí bez chyb, informace, které jsou k dispozici, řídí C++ IntelliSense a jazykové služby. Používá se také v operacích sestavení a ladění.
Můžete také otevřít existující cache CMake v prostředí Visual Studio. Další informace naleznete v tématu Otevření existující mezipaměti.
Přizpůsobte konfiguraci zpětné vazby a oznámení
Ve výchozím nastavení se většina konfiguračních zpráv potlačí, pokud nedojde k chybě. Pokud chcete zobrazit všechny zprávy, vyberte Nástroje>Možnosti>CMake>Povolit podrobný diagnostický výstup CMake.
Všechna oznámení mezipaměti CMake (zlaté pruhy) můžete také zakázat zrušením výběru Zobrazit oznámení mezipaměti CMake.
Přizpůsobení cílových skupin zobrazení zdrojových skupin
Zobrazení cílů CMake ve výchozím nastavení ignoruje následující zdrojové skupiny: Zdrojové soubory, Hlavičkové soubory, Prostředky, Objektové soubory. Tyto skupiny jsou ve výchozím nastavení zahrnuté ve většině projektů CMake a zbytečně by se zvýšil počet kliknutí potřebných k navigaci v zobrazení Cílů.
Použití těchto zdrojových skupin můžete povolit tak, že vybereteMožnosti>nástrojů>CMake>Povolit použití ignorovaných zdrojových skupin v zobrazení cílů CMake.
Řešení chyb mezipaměti CMake
Pokud potřebujete další informace o stavu mezipaměti CMake k diagnostice problému, otevřete hlavní nabídku Projectu nebo CMakeLists.txt místní nabídku v Průzkumník řešení a spusťte jeden z těchto příkazů:
Zobrazit CMakeCache.txt otevře
CMakeCache.txtsoubor ze složky sestavení v editoru. Veškeré úpravy, které uděláte naCMakeCache.txt, se vymažou, když vyčistíte mezipaměť. Pokud chcete provést změny, které se zachovají po vyčištění mezipaměti, přečtěte si téma Přizpůsobení nastavení CMake nebo Konfigurace a sestavení pomocí předvoleb CMake.Odstranění mezipaměti a změna konfigurace odstraní adresář sestavení a znovu nakonfiguruje z čisté mezipaměti.
Konfigurace mezipaměti vynutí spuštění kroku generování i v případě, že Visual Studio považuje prostředí za aktuální.
Sestavování projektů CMake
Krok sestavení CMake vytvoří již vygenerovaný binární strom projektu. Je to ekvivalent volání cmake --build z příkazového řádku. Další informace o kroku sestavení CMake najdete v dokumentaci k CMake.
Pokud chcete vytvořit projekt CMake, máte tyto možnosti:
Na panelu nástrojů vyhledejte Spouštěcí položka rozbalovací nabídku. Vyberte upřednostňovaný cíl a stiskněte klávesu F5 nebo zvolte tlačítko Spustit na panelu nástrojů. Projekt se automaticky sestaví jako první, stejně jako řešení sady Visual Studio.
Klikněte pravým tlačítkem myši na CMake cíl při aktivním zobrazení CMake Targets View v Průzkumníku řešení a v místní nabídce vyberte možnost Sestavit.
V hlavní nabídce vyberte Sestavit > Sestavit vše. Ujistěte se, že cíl CMake je již vybrán v rozbalovací nabídce Po spuštění na panelu nástrojů.
Jak byste očekávali, výsledky sestavení se zobrazí v okně výstupu a v seznamu chyb.
C: Upozornění kompilace týkající se převodů, které mohou vést ke ztrátě dat, jako je převod z desetinného čísla na celé číslo, jsou viditelná.
Upravit nastavení sestavení
Visual Studio používá konfigurační soubor CMake k řízení sestavení CMake. Konfigurační soubory CMake zapouzdřují možnosti sestavení, jako jsou přepínače nativního nástroje sestavení a proměnné prostředí. Pokud je CMakePresets.json váš aktivní konfigurační soubor, podívejte se na Konfigurace a sestavení pomocí předvoleb CMake. Pokud je CMakeSettings.json váš aktivní konfigurační soubor, přečtěte si téma Přizpůsobení nastavení sestavení v CMake.
CMakePresets.json je k dispozici v sadě Visual Studio 2019 verze 16.10 nebo novější a je doporučeným konfiguračním souborem CMake.
Ladění projektů CMake
Všechny spustitelné CMake cíle se zobrazují v rozbalovací nabídce Spouštěcí položka na panelu nástrojů. Pokud chcete spustit ladění, vyberte ho a stiskněte > tlačítko Spustit ladění na panelu nástrojů. V projektu CMake je možnost Aktuální dokument platná pouze pro .cpp soubory.
Rozevírací seznam obsahuje tyto možnosti: Zobrazit / Skrýt cíle ladění, aktuální dokument, Ukázky (které jsou zvýrazněné), box2d_tests a Samples-noGUI.
Příkazy Ladění nebo F5 nejprve sestaví projekt, pokud byly provedeny změny od předchozího sestavení. Změny konfiguračního souboru CMake (CMakePresets.json nebo CMakeSettings.json) nebo CMakeLists.txt způsobí, že se mezipaměť CMake znovu vygeneruje.
Relaci ladění pro CMake můžete přizpůsobit nastavením vlastností v souboru launch.vs.json. Chcete-li přizpůsobit nastavení ladění pro konkrétní cíl, vyberte cíl v rozevíracím seznamu Počáteční položka a zvolte >. Další informace o ladicích relacích CMake naleznete v tématu Konfigurace ladicích relací CMake.
Jen můj kód pro projekty CMake
Při sestavování pro Windows pomocí kompilátoru Microsoft C++ (MSVC) mají projekty CMake podporu pro ladění Just My Code. Pokud chcete změnit nastavení Jen můj kód, přejděte na Nástroje>Možnosti>Ladění>Obecné. Další informace o ladění s použitím funkce Just My Code naleznete v tématu Ladění pouze uživatelského kódu pomocí funkce Just My Code.
Upravit a pokračovat pro projekty CMake
Při sestavování pro Windows pomocí kompilátoru MSVC mají projekty CMake podporu pro úpravy a pokračování. Přidejte do CMakeLists.txt souboru následující kód, který povolí funkci Upravit a pokračovat.
if(MSVC)
target_compile_options(<target> PUBLIC "/ZI")
target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()
Další informace o úpravách a pokračování najdete v tématu Konfigurace úprav a pokračování (C#, VB, C++).
Připojení k projektu CMake běžícímu v Linuxu
Visual Studio umožňuje ladit proces spuštěný ve vzdáleném systému Linux nebo WSL a ladit ho pomocí ladicího programu GDB. Začněte tím, že vyberete Ladění>Připojit k procesu..., nastavíte typ připojení na SSH, a vyberete svůj cílový bod připojení ze seznamu připojení ve Správci připojení. V seznamu dostupných procesů vyberte proces a stiskněte připojit. Na počítači s Linuxem musí být nainstalovaná služba GDB. Další informace o připojeních SSH najdete v Správce připojení
V dialogovém okně jsou k dispozici následující možnosti: Typ připojení (nastavený na SSH), cíl připojení (nastavený na demo@ 172. 20. 60. 6) a seznam dostupných procesů, ke které se můžete připojit."
Částečná aktivace CMake
Ve Visual Studio 2022 verze 17.1 a novějších není funkcionalita CMake automaticky povolena, pokud kořenový adresář neobsahuje soubor CMakeLists.txt. Místo toho se zobrazí dialogové okno s výzvou, jestli chcete pro svůj projekt povolit funkce CMake. Pokud odmítnete, generování mezipaměti CMake se nespustí a konfigurace CMake (z CMakeSettings.json nebo CMakePresets.json) se v rozevíracím seznamu konfigurace nezobrazí. Pokud to přijmete, přejdete do konfiguračního souboru na úrovni pracovního prostoru (uložený v CMakeWorkspaceSettings.json adresáři) a určíte složky, .vs pro které chcete CMake povolit. (Tyto složky obsahují vaše kořenové CMakeLists.txt soubory).
Akceptované vlastnosti jsou:
| Property | Description |
|---|---|
enableCMake |
Povolte integraci sady Visual Studio pro tento pracovní prostor. |
sourceDirectory |
Řetězec nebo pole řetězců určující adresář nebo adresáře s řetězcem CMakeLists.txt. Makra (například ${workspaceRoot}) jsou povolená. Relativní cesty jsou založené na kořenu pracovního prostoru. Adresáře mimo aktuální pracovní prostor se ignorují. |
K nabídce
Otevření existující mezipaměti
Když otevřete existující soubor mezipaměti CMake (CMakeCache.txt), Visual Studio se nepokouší spravovat mezipaměť a vytvořit strom sestavení za vás. Vlastní nebo upřednostňované nástroje mají úplnou kontrolu nad tím, jak CMake konfiguruje váš projekt.
Do otevřeného projektu můžete přidat existující mezipaměť CMake. Je to stejné, jako byste přidali novou konfiguraci. Další informace najdete v našem blogovém příspěvku o otevření existující mezipaměti v sadě Visual Studio.
Note
Výchozí zkušenost s mezipamětí závisí na cmake-server, které bylo odstraněno z CMake ve verzi 3.20. Pokud chcete dál používat stávající funkce mezipaměti v sadě Visual Studio 2019 verze 16.10 a novější, proveďte jeden z těchto kroků:
- Ručně nainstalujte CMake verze 3.19 nebo nižší. Potom nastavte
cmakeExecutablevlastnost v existující konfiguraci mezipaměti tak, aby používala tuto verzi CMake. - Ve stávající konfiguraci mezipaměti nastavte vlastnost
cacheGenerationCommand, aby Visual Studio požadovalo potřebné soubory rozhraní API CMake založené na souborech. Další informace o této vlastnosti najdete v tématu CMakeSettings.json reference. - Před otevřením v sadě Visual Studio použijte soubor dotazu k vyžádání souborů rozhraní API založených na souborech CMake při generování mezipaměti. Pokyny k souboru dotazu najdete v další části Řešení potíží s pokročilým ukládáním do mezipaměti CMake.
Řešení pokročilých problémů s mezipamětí CMake
Visual Studio používá rozhraní API založené na souborech CMake (ve verzích 3.14 a novějších) k naplnění editoru informacemi specifickými pro strukturu projektu. Další informace najdete v blogovém příspěvku týmu C++ o více kořenových pracovních prostorech a souborovém rozhraní API.
Před generováním mezipaměti CMake může být potřeba vlastní nebo upřednostňované nástroje vytvořit soubor dotazu pojmenovaný .cmake/api/v1/query/client-MicrosoftVS/query.json ve výstupní složce sestavení (složka, která obsahuje CMakeCache.txt). Soubor dotazu by měl obsahovat tento obsah:
{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}
Když vaše vlastní nebo upřednostňované nástroje vygenerují vaši mezipaměť, CMake umístí soubory do .cmake/api/v1/response, které Visual Studio používá k naplnění editoru informacemi specifickými pro vaši strukturu projektu.
Úpravy CMakeLists.txt souborů
Pokud chcete soubor upravitCMakeLists.txt, klikněte pravým tlačítkem myši na soubor v Průzkumník řešení a zvolte Otevřít. Pokud provedete změny v souboru, zobrazí se žlutý stavový řádek a informuje vás, že se IntelliSense aktualizuje. Získáte tak možnost zrušit operaci aktualizace. Informace o CMakeLists.txt najdete v dokumentaci CMake.
Obsahuje řádky projektu (hello-cmake), add_subdirectory (testy), add_executable (hello hello.cpp), a install (TARGETS hello DESTINATION hello/bin). V horní části okna se zobrazí zpráva, že informace IntelliSense pro C++ se obnoví po dokončení generování mezipaměti nástrojem CMake.
Jakmile soubor uložíte, krok konfigurace se automaticky spustí znovu a zobrazí informace v okně Výstup . Chyby a upozornění se zobrazují v okně Seznam chyb nebo Výstup . Poklikejte na chybu v Seznamu chyb a přejděte na chybovou řádku v CMakeLists.txt.
Na řádku 3 CMakeLists.txt je zvýrazněná chybová zpráva C Make. Podrobnosti jsou v tom, že C Make nemohl najít konfigurační soubor balíčku, který poskytuje sqlite3. C Make ho hledal v CMAKE_MODULE_PATH, ale nemohl ho najít. Návrhem je přidat předponu instalace sqlite3 pro CMAKE_PREFIX_PATH nebo nastavit sqlite3_DIR do adresáře obsahujícího sqlite3Config.cmake a/nebo sqlitet3-config.cmake.
Jazykové služby pro CMake
Jazykové služby pro CMake jsou dostupné v sadě Visual Studio 2019 verze 16.5 nebo novější. Jazykové služby podporují funkce navigace v kódu, jako je Přejít k definici, Náhled definice a Najít všechny odkazy pro proměnné CMake, funkce a cíle v souborech skriptů CMake. Další informace najdete v tématu Navigace v kódu pro skripty CMake.
Zobrazí se výsledky ukazující, kde byly nalezeny SUPERTUX_SOURCES_CXX. Například v seznamech jako SORT SSUPERTUX_SOURCES_CXX, file GLOB SUPERTUX_SOURCES_CXX a podobně.
Manipulace s projektem CMake
Manipulace s projektem CMake je dostupná v sadě Visual Studio 2019 verze 16.5 nebo novější. Manipulace s projektem umožňuje přidávat, odebírat a přejmenovat zdrojové soubory a cíle v projektu CMake, aniž byste museli ručně upravovat skripty CMake. Když přidáte nebo odeberete soubory z Průzkumník řešení, Visual Studio automaticky upraví projekt CMake. Může existovat více míst, kde je vhodné přidat nebo odebrat odkaz na skript CMake. Pokud ano, sada Visual Studio vás vyzve, kde chcete provést změnu, a zobrazí náhled navrhovaných změn. Podrobné pokyny najdete v tématu Přidání, odebrání a přejmenování souborů a cílů v projektech CMake.
Stromové zobrazení zobrazuje CMakeLists.txt, pod kterým jsou dvě položky: add_executable a set. Sada je zaškrtnutá. Okno náhledu ukazuje, kde budou provedeny změny. Sada řádků PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" zobrazuje "Demo.cpp" zvýrazněné před pravou závorkou. Tlačítko Použít změnu přijme nebo můžete stisknout tlačítko Storno.
IntelliSense pro projekty CMake
Visual Studio ve výchozím nastavení používá režim IntelliSense, který odpovídá kompilátoru a cílové architektuře určené aktivní konfigurací CMake.
Pokud CMakePresets.json je váš aktivní konfigurační soubor CMake, můžete určit možnosti IntelliSense pomocí intelliSenseMode a intelliSenseOptions v mapě dodavatele nastavení sady Visual Studio. Další informace najdete v referenčních informacích k mapě dodavatele nastavení sady Visual Studio.
Pokud je CMakeSettings.json váš aktivní konfigurační soubor CMake, můžete zadat možnosti IntelliSense pomocí intelliSenseMode v CMakeSettings.json. Další informace najdete v referenčních informacíchCMakeSettings.json.
Konfigurace IntelliSense se soubory sady nástrojů CMake
V sadě Visual Studio 2019 verze 16.9 a novější sada Visual Studio automaticky konfiguruje IntelliSense v projektech CMake na základě proměnných CMake při použití souboru sady nástrojů CMake. Další informace najdete v tématu Konfigurace technologie IntelliSense se soubory sady nástrojů CMake.
Integrace Vcpkg
Projekty CMake otevřené v sadě Visual Studio se integrují s nástrojem vcpkg, který je správce závislostí C/C++ pro různé platformy. Před použitím vcpkg s Integrovaným vývojovým prostředím Visual Studio musíte spustit vcpkg integrate install. Pokyny a další informace o vcpkg najdete tady:
Pokud CMakeSettings.json je váš aktivní konfigurační soubor, Sada Visual Studio automaticky předá soubor vcpkg toolchain (vcpkg.cmake) do CMake. Toto chování se automaticky zakáže, když v konfiguraci nastavení CMake zadáte jakoukoli jinou sadu nástrojů.
Pokud je CMakePresets.json váš aktivní konfigurační soubor, musíte nastavit cestu k vcpkg.cmake v CMakePresets.json. Pokud chcete zachovat sdílenou složku, doporučujeme místo absolutní cesty použít VCPKG_ROOT proměnnou prostředí. Další informace najdete v tématu Povolit integraci vcpkg s předvolbami CMake.
CMakePresets.json je k dispozici v sadě Visual Studio 2019 verze 16.10 nebo novější a je doporučeným konfiguračním souborem CMake.
Spuštění CMake z příkazového řádku
Pokud CMakePresets.json je váš aktivní konfigurační soubor CMake, můžete snadno reprodukovat místní sestavení mimo Visual Studio. Další informace viz Spuštění CMake z příkazové řádky nebo CI pipeline.
CMakePresets.json je podporován ve Visual Studiu 2019 od verze 16.10 a novějších a je doporučeným konfiguračním souborem CMake.
Pokud CMakeSettings.json je váš aktivní konfigurační soubor CMake, musíte ručně předat argumenty, které jsou kódovány v CMakeSettings.json souboru do CMake. Pokud jste nainstalovali CMake z instalačního programu sady Visual Studio, můžete ho spustit z příkazového řádku pomocí následujícího postupu:
Spusťte příslušný
vsdevcmd.batsoubor (x86/x64). Další informace naleznete v tématu Použití sady nástrojů Microsoft C++ z příkazového řádku .Přejděte do své výstupní složky.
Spusťte CMake a sestavte nebo nakonfigurujte aplikaci.
Visual Studio 2017 má bohatou podporu pro CMake, včetně projektů CMake pro různé platformy. Komponenta Visual C++ Tools for CMake používá funkci Otevřít složku k povolení integrovaného vývojového prostředí (IDE) využívat soubory projektu CMake (například CMakeLists.txt) přímo pro účely Technologie IntelliSense a procházení. Podporují se generátory Ninja i Visual Studio. Pokud používáte generátor sady Visual Studio, vygeneruje dočasný soubor projektu a předá ho do nástroje MSBuild. Projekt se ale nikdy nenačte pro účely IntelliSense ani pro účely procházení. Můžete také importovat existující mezipaměť CMake.
Installation
Visual C++ Tools for CMake se instaluje jako součást vývoje desktopových aplikací s úlohami C++ a Vývoje pro Linux s C++ .
Další informace naleznete v tématu Instalace úlohy C++ Linux v sadě Visual Studio.
Integrace integrovaného vývojového prostředí (IDE)
Když zvolíte > pro > otevření složky obsahující soubor, stane se toto:
Visual Studio přidá položku nabídky CMake do hlavní nabídky s příkazy pro zobrazení a úpravy skriptů CMake.
Průzkumník řešení zobrazí strukturu složek a soubory.
Visual Studio spustí CMake a volitelně vygeneruje mezipaměť CMake pro výchozí konfiguraci, což je x86 Debug. Příkazový řádek CMake se zobrazí v okně Výstup spolu s dalším výstupem z CMake.
Visual Studio začne indexovat zdrojové soubory, aby bylo možné povolit IntelliSense, informace o procházení, refaktoring atd., a to na pozadí. Během práce Visual Studio monitoruje změny v editoru a také na disku, aby se jeho index synchronizoval se zdroji.
Můžete otevřít složky obsahující libovolný počet projektů CMake. Visual Studio rozpozná a nakonfiguruje všechny soubory nejvyšší úrovně CMakeLists.txt ve vašem pracovním prostoru. Operace CMake (konfigurace, sestavení, ladění), technologie IntelliSense a procházení C++ jsou dostupné pro všechny projekty CMake ve vašem pracovním prostoru.
Soubory a složky projektu C Make jsou viditelné. Existuje podadresář testů, CMakeLists.txt a hello.cpp. Existuje složka hello-cmake-vcpkg, která obsahuje CMakeLists.txt, CMakeSettings.json a hello.cpp.
Můžete si také zobrazit projekty uspořádané logicky podle cílů. V rozevíracím seznamu na panelu nástrojů Průzkumník řešení zvolte zobrazení Cíle.
Visual Studio používá soubor volaný CMakeSettings.json k ukládání proměnných prostředí nebo možností příkazového řádku pro CMake.
CMakeSettings.json umožňuje také definovat a uložit několik konfigurací sestavení CMake. Mezi nimi můžete pohodlně přepínat v integrovaném vývojovém prostředí (IDE).
V opačném případě použijte CMakeLists.txt stejně jako v jakémkoli projektu CMake k určení zdrojových souborů, vyhledání knihoven, nastavení možností kompilátoru a linkeru a zadání dalších informací souvisejících se systémem sestavení.
Pokud potřebujete předat argumenty spustitelnému souboru v době ladění, můžete použít jiný soubor s názvem launch.vs.json. V některých scénářích Visual Studio tyto soubory automaticky vygeneruje. Můžete je upravovat ručně nebo dokonce sami vytvořit soubor.
Note
Pro jiné druhy projektů Open Folder se používají dva další soubory JSON: CppProperties.json a tasks.vs.json. Žádná z těchto možností není relevantní pro projekty CMake.
Import existující mezipaměti
Při importu existujícího CMakeCache.txt souboru Visual Studio automaticky extrahuje přizpůsobené proměnné a na jejich základě vytvoří předem vyplněný CMakeSettings.json soubor. Původní mezipaměť se nijak nezmění. Můžete ho dál používat z příkazového řádku nebo s jakýmkoli nástrojem nebo integrovaným vývojovém prostředím, které ho použijete k jeho vygenerování. Nový CMakeSettings.json soubor se umístí vedle kořenového adresáře CMakeLists.txtprojektu . Visual Studio vygeneruje novou mezipaměť založenou na souboru nastavení. Automatické generování mezipaměti můžete přepsat v dialogovém okně Možnosti > nástrojů > CMake > Obecné.
Ne všechno v mezipaměti se importuje. Vlastnosti, jako je generátor a umístění kompilátorů, se nahradí výchozími nastaveními, o kterých se ví, že dobře fungují s integrovaným vývojovém prostředím ( IDE).
Načíst existující mezipaměť
V hlavní nabídce zvolte Soubor > Otevřít > CMake:
Tento příkaz zobrazí průvodce importem CMake z mezipaměti .
Přejděte na
CMakeCache.txtsoubor, který chcete importovat, a pak zvolte OK. Zobrazí se průvodce importem projektu CMake z mezipaměti :
Po dokončení průvodce uvidíte nový
CMakeCache.txtsoubor v Průzkumník řešení vedle kořenovéhoCMakeLists.txtsouboru v projektu.
Sestavování projektů CMake
Pokud chcete vytvořit projekt CMake, máte tyto možnosti:
Na panelu nástrojů Obecné vyhledejte rozevírací seznam Konfigurace . Ve výchozím nastavení se pravděpodobně zobrazuje Linux-Debug nebo x64-Debug . Vyberte upřednostňovanou konfiguraci a stiskněte klávesu F5 nebo zvolte tlačítko Spustit (zelený trojúhelník) na panelu nástrojů. Projekt se automaticky sestaví jako první, stejně jako řešení sady Visual Studio.
Klepněte pravým tlačítkem myši na
CMakeLists.txtv Průzkumníku řešení a v místní nabídce vyberte Sestavit. Pokud máte ve struktuře složek více cílů, můžete se rozhodnout vytvořit všechny nebo jenom jeden konkrétní cíl.V hlavní nabídce vyberte Sestavení > Sestavit řešení (F7 nebo Ctrl+Shift+B). Ujistěte se, že cíl CMake je již vybrán v rozevíracím seznamu Počáteční položka na panelu nástrojů Obecné.
Nabídka obsahuje možnosti, jako je Přidat, Otevřít, Konfigurovat úkoly, Sestavit, Vyčistit vše a tak dále.
V souboru můžete přizpůsobit konfigurace sestavení, proměnné prostředí, argumenty příkazového CMakeSettings.json řádku a další nastavení. Umožňuje provádět změny, aniž by bylo nutné měnit soubor CMakeLists.txt. Další informace najdete v tématu Přizpůsobení nastavení sestavení CMake.
Jak byste očekávali, výsledky sestavení se zobrazí v okně výstupu a v seznamu chyb.
C: Upozornění při sestavování týkající se převodů, které můžou vést ke ztrátě dat, jako je například převod z čísla s plovoucí desetinnou čárkou na celé číslo, jsou viditelná.
Ve složce s více cíli sestavení můžete určit, který cíl CMake se má sestavit: Zvolte položku Sestavení v nabídce CMake nebo CMakeLists.txt v místní nabídce a určete cíl. Pokud do projektu CMake zadáte Ctrl+Shift+B , sestaví aktuální aktivní dokument.
Ladění projektů CMake
Pokud chcete ladit projekt CMake, zvolte upřednostňovanou konfiguraci a stiskněte klávesu F5. Nebo stiskněte tlačítko Spustit na panelu nástrojů. Pokud je na tlačítku Spustit možnost Vybrat položku po spuštění, vyberte šipku rozevíracího seznamu a zvolte cíl, který chcete spustit. (V projektu CMake je možnost Aktuální dokument platná pouze pro .cpp soubory.)
Příkazy Spustit nebo F5 nejprve sestaví projekt, pokud byly provedeny změny od předchozího sestavení.
Relaci ladění pro CMake můžete přizpůsobit nastavením vlastností v souboru launch.vs.json. Další informace naleznete v tématu Konfigurace ladicích relací CMake.
Úpravy CMakeLists.txt souborů
Pokud chcete soubor upravitCMakeLists.txt, klikněte pravým tlačítkem myši na soubor v Průzkumník řešení a zvolte Otevřít. Pokud provedete změny v souboru, zobrazí se žlutý stavový řádek a informuje vás, že se IntelliSense aktualizuje. Získáte tak možnost zrušit operaci aktualizace. Informace o CMakeLists.txt najdete v dokumentaci CMake.
Soubor obsahuje projekt (hello-cmake), add_subdirectory (testy), add_executable (hello hello.cpp) a instalaci (TARGETS hello destination hello/bin). V horní části okna se zobrazí zpráva, že informace IntelliSense pro C++ se obnoví po dokončení generování mezipaměti nástrojem CMake.
Jakmile soubor uložíte, krok konfigurace se automaticky spustí znovu a zobrazí informace v okně Výstup . Chyby a upozornění se zobrazují v okně Seznam chyb nebo Výstup . Poklikejte na chybu v Seznamu chyb a přejděte na chybovou řádku v CMakeLists.txt.
Na řádku 3 CMakeLists.txt je zvýrazněná chybová zpráva C Make. Podrobnosti jsou, že C Make nemůže najít konfigurační soubor balíčku, který poskytuje sqlite3. C Make ho hledal v CMAKE_MODULE_PATH, ale nemohl ho najít. Návrhem je přidat předponu instalace sqlite3 pro CMAKE_PREFIX_PATH nebo nastavit sqlite3_DIR do adresáře obsahujícího sqlite3Config.cmake a/nebo sqlitet3-config.cmake.
Krok konfigurace CMake
Když jsou u CMakeSettings.json nebo u souborů CMakeLists.txt provedeny významné změny, Visual Studio automaticky znovu spustí krok konfigurace CMake. Pokud se krok konfigurace dokončí bez chyb, jsou shromážděné informace dostupné v C++ IntelliSense a jazykových službách. Používá se také v operacích sestavení a ladění.
Více projektů CMake může používat stejný název konfigurace CMake (například x86-Debug). Všechny jsou nakonfigurované a sestavené (ve vlastní kořenové složce sestavení) při výběru této konfigurace. Můžete ladit cíle všech projektů, které jsou součástí této konfigurace CMake.
Místní nabídka zobrazuje možnosti sestavení. V tomto případě hello-cmake-a \ hello-cmake.exe (projekt hello-cmake) a hello-cmake-b \ hello-cmake.exe (projekt hello-cmake). Druhá možnost je zvýrazněná.
Sestavení a ladicí relace můžete omezit na podmnožinu projektů v pracovním prostoru. Vytvořte novou konfiguraci s jedinečným názvem v CMakeSettings.json souboru. Pak konfiguraci použijte pouze u těchto projektů. Pokud je tato konfigurace vybrána, IntelliSense a příkazy pro sestavení a ladění se použijí pouze na zadané projekty.
Řešení chyb mezipaměti CMake
Pokud potřebujete další informace o stavu mezipaměti CMake k diagnostice problému, otevřete hlavní nabídku CMake nebo CMakeLists.txt místní nabídku v Průzkumník řešení a spusťte jeden z těchto příkazů:
Zobrazit mezipaměť otevře soubor z kořenové složky buildu v editoru. Veškeré úpravy, které uděláte na
CMakeCache.txt, se vymažou, když vyčistíte mezipaměť. Pokud chcete provést změny, které se zachovají po vyčištění mezipaměti, přečtěte si téma Přizpůsobení nastavení CMake.Otevřít složku mezipaměti otevře okno Průzkumníka do kořenové složky sestavení.
Vyčistit mezipaměť odstraní kořenovou složku sestavení, aby další krok konfigurace CMake začal z čisté mezipaměti.
Vygenerování mezipaměti vynutí spuštění kroku generování i v případě, že Visual Studio považuje prostředí za aktuální.
Automatické generování mezipaměti je možné zakázat v dialogovém okně Možnosti > nástrojů > CMake > Obecné.
Kompilace jednoho souboru
Pokud chcete vytvořit jeden soubor v projektu CMake, klikněte pravým tlačítkem myši na soubor v Průzkumník řešení. V místní nabídce zvolte Zkompilovat. V editoru můžete také sestavit aktuálně otevřený soubor pomocí hlavní nabídky CMake :
Spuštění CMake z příkazového řádku
Pokud jste nainstalovali CMake z instalačního programu sady Visual Studio, můžete ho spustit z příkazového řádku pomocí následujícího postupu:
Spusťte příslušný
vsdevcmd.batsoubor (x86/x64). Další informace naleznete v tématu Sestavení na příkazovém řádku.Přejděte do své výstupní složky.
Spusťte CMake a sestavte nebo nakonfigurujte aplikaci.
V sadě Visual Studio 2015 můžou uživatelé sady Visual Studio pomocí generátoru CMake generovat soubory projektu MSBuild, které integrované vývojové prostředí (IDE) pak využívá pro IntelliSense, procházení a kompilaci.
Související obsah
- Kurz: Vytváření multiplatformních projektů jazyka C++ v sadě Visual Studio
- Konfigurace projektu Linux CMake
- Připojení ke vzdálenému počítači s Linuxem
- Přizpůsobit nastavení sestavení CMake
-
CMakeSettings.jsonReferenční dokumentace schématu - Konfigurace ladicích relací CMake
- Nasazení, spuštění a ladění projektu Linux
- Referenční informace o předdefinované konfiguraci CMake
- vcpkg v projektech CMake
- Instalace a používání balíčků s CMake ve Visual Studio