Projekty CMake v sadě Visual Studio
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.
Poznámka:
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 ovládací prvek selektoru verzí . Nachází se v horní části obsahu na této stránce.
Nativní podpora CMake sady Visual Studio umožňuje upravovat, sestavovat a ladit projekty CMake ve Windows, Subsystém Windows pro Linux (WSL) a vzdálené systémy 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í.
cmake.exe
vyvolá se přímo pomocí sady Visual Studio pro konfiguraci a sestavení CMake.
Instalace
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.
Poznámka:
Počínaje sadou Visual Studio 2022 verze 17.1 Preview 2, 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ů:
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. Příkladem může být:
- Upravit a pokračovat pro projekty CMake
- Integrace incredibuildu pro projekty CMake
- Podpora AddressSanitizer pro projekty CMake
- Podpora Clang/LLVM
Poznámka:
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 může být použit k řízení generování a sestavování CMake z Visual Studio, z VS Code, v prostředí kontinuální integrace a z příkazové řádky ve Windows, Linux a macOS. Další informace najdete v tématu Konfigurace a sestavení pomocí předvoleb CMakeCMakePresets.json
.
CMakeSettings.json
je k dispozici pro zákazníky používající starší verzi sady Visual Studio. Další informace najdete v tématu Přizpůsobení nastavení sestavení CMake.
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 se označují. Je vybrána volba Zobrazit oznámení CMake cache. Když je mezipaměť zastaralá, je vybrána možnost Nikdy nespouštět krok konfigurace automaticky.
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", "Soubory hlaviček", "Prostředky", "Soubory objektů". Důvodem je to, že 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íle.
Povolte použití těchto zdrojových skupin povolením Tools>Options>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.txt
soubor 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.
Upozornění sestavení CMake o převodech, které můžou vést ke ztrátě dat, jako je například převod z float na celé číslo, jsou viditelné.
:::image-end:::
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 Spouštěcí položky a stiskněte Debug > Ladění a spuštění nastavení pro <aktivního cíle>. 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 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. Další informace o úpravách a pokračování najdete v tématu Konfigurace úprav a pokračování (C#, VB, C++).
if(MSVC)
target_compile_options(<target> PUBLIC "/ZI")
target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()
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 Studiu 2022, počínaje verzí 17.1, a v novějších verzích nebude funkcionalita CMake povolena automaticky, pokud vaše kořenová složka neobsahuje soubor CMakeLists.txt
. Místo toho se zobrazí dialogové okno s výzvou k povolení funkčnosti CMake pro váš projekt. 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:
Vlastnost | Popis |
---|---|
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 budou ignorovány. |
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.
Poznámka:
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
cmakeExecutable
vlastnost 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ší. Podporuje funkce navigace kódu, jako je Přejít k definici, Náhled definice a Najít všechny odkazy pro proměnné, funkce a cíle CMake v CMake skriptech. 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 bez ruční úpravy skriptů 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 CMakePresets.json
je váš aktivní konfigurační soubor, budete muset 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, budete muset do CMake ručně předat argumenty, které jsou kódovány v CMakeSettings.json
souboru. Pokud jste nainstalovali CMake z Instalační program pro Visual Studio, můžete ho spustit z příkazového řádku pomocí následujícího postupu:
Spusťte příslušný
vsdevcmd.bat
soubor (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.
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.
Instalace
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í CMakeLists.txt
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 na pozadí začne indexovat zdrojové soubory, aby bylo možné povolit IntelliSense, informace o procházení, refaktoring atd. 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 "kořenové" CMakeLists.txt
soubory 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 CMake 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 ukládat 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.
Poznámka:
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 sada Visual Studio automaticky extrahuje přizpůsobené proměnné a na základě nich 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.txt
projektu . 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.txt
soubor, 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.txt
soubor v Průzkumník řešení vedle kořenovéhoCMakeLists.txt
souboru 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.txt
v 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í CMake.
Jak byste očekávali, výsledky sestavení se zobrazí v okně výstupu a v seznamu chyb.
Upozornění sestavení CMake o převodech, které můžou vést ke ztrátě dat, jako je například převod z float 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 uvedeno 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í CMake můžete přizpůsobit tak, že nastavíte vlastnosti 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 k CMake.
Soubor obsahuje: projekt (hello-cmake), add_subdirectory (testy), add_executable (hello hello.cpp) a instalaci (TARGETS hello DESTINATION hello hello/bin). V horní části okna se zobrazí zpráva, že se informace IntelliSense pro C++ obnoví po dokončení generování mezipaměti C Make.
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, abyste se dostali na problémový řádek 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 ukazuje, co se dá vytvořit – 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. Všechny úpravy, které zde uděláte, budou
CMakeCache.txt
vymazány, když vyčistíte mezipaměť. Pokud chcete provést změny, které přetrvají po vyčištění mezipaměti, přečtěte si Přizpůsobení CMake nastavení.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í program pro Visual Studio, můžete ho spustit z příkazového řádku pomocí následujícího postupu:
Spusťte příslušný
vsdevcmd.bat
soubor (x86/x64). Další informace naleznete v tématu Sestavení na příkazovém řádku.Přepněte do 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.
Viz také
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.json
Referenč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
Instalujte a použijte balíčky s CMake ve Visual Studio