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
) využívají visual Studio přímo pro účely 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 vybraný desktopový vývoj s C plus plus rozevírací seznam a C plus C plus C Make tools for 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. Otevření místní složky se zobrazí na snímku obrazovky.
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 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.
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
nástroj CMake podporuje přímo a dá se použít k řízení generování a sestavování CMake ze sady Visual Studio, z VS Code, v kanálu kontinuální integrace a z příkazového řádku ve Windows, Linuxu a Macu. Další informace najdete CMakePresets.json
v tématu Konfigurace a sestavení pomocí předvoleb CMake. CMakeSettings.json
je k dispozici pro zákazníky používající starší verzi sady Visual Studio. Další informace najdete CMakeSettings.json
v tématu Přizpůsobení nastavení sestavení CMake.
Když provedete významné změny konfiguračního CMakeLists.txt
souboru CMake nebo souboru, Visual Studio automaticky spustí krok konfigurace CMake. Krok konfigurace můžete vyvolat ručně: Na panelu nástrojů vyberte mezipaměť Konfigurace projektu>. Předvolby konfigurace můžete změnit také v >nástrojích Možnosti>CMake>Obecné.
Nastavení konfigurace CMake se označuje. Je vybrána možnost Zobrazit oznámení c Make cache. V části Při vypršení běhu mezipaměti je vybraná možnost Nikdy spustit 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í mezipaměť CMake v sadě Visual Studio. Další informace naleznete v tématu Otevření existující mezipaměti.
Přizpůsobení zpětné vazby a oznámení konfigurace
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 Možnosti>nástrojů>CMake>Povolit podrobný výstup diagnostiky CMake.
Všechna oznámení mezipaměti CMake (zlaté pruhy) můžete také zakázat zrušením výběru možnosti Zobrazit oznámení mezipaměti 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ů:
Zobrazení CMakeCache.txt otevře
CMakeCache.txt
soubor z adresáře sestavení v editoru. Všechny úpravy, které tady uděláte, seCMakeCache.txt
vymažou, když mezipaměť vyčistíte. 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 rozevírací seznam Po spuštění položky . 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 na cíl CMake s aktivním zobrazením cílů CMake v Průzkumník řešení a v místní nabídce vyberte Sestavit.
V hlavní nabídce vyberte Sestavit > vše. Ujistěte se, že cíl CMake je již vybrán v rozevíracím seznamu Po spuštění položky 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:::
Úprava 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 CMakePresets.json
je váš aktivní konfigurační soubor, přečtěte si téma Konfigurace a sestavení pomocí předvoleb CMake. Pokud CMakeSettings.json
je váš aktivní konfigurační soubor, přečtěte si téma Přizpůsobení nastavení sestavení 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 cíle spustitelného souboru CMake se zobrazují v rozevíracím seznamu Po spuštění položky 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 nebo skrýt cíle ladění, aktuální dokument, ukázky (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 způsobí CMakeLists.txt
opětovné vygenerování mezipaměti CMake.
Ladicí relaci CMake můžete přizpůsobit nastavením vlastností v launch.vs.json
souboru. Chcete-li přizpůsobit nastavení ladění pro konkrétní cíl, vyberte cíl v rozevíracím seznamu Po spuštění položky a stiskněte ladění > ladění a spuštění nastavení pro <aktivní-cíl>. Další informace o ladicích relací CMake naleznete v tématu Konfigurace ladicí relace CMake.
Just My Code for CMake projects
Při sestavování pro Windows pomocí kompilátoru MSVC mají projekty CMake podporu ladění Just My Code. Pokud chcete změnit nastavení Jen můj kód, přejděte na Možnosti>nástrojů>Obecné ladění.> Další informace o ladění Pouze můj kód naleznete v tématu Ladění pouze uživatelského kódu pomocí pouze mého kódu.
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 Připojit k procesu ladění>... nastavíte typ připojení na SSH a v seznamu připojení v Správce připojení vyberete cíl 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
V sadě Visual Studio 2022 verze 17.1 a novějších nebude funkce CMake povolena automaticky, pokud kořenová složka neobsahuje CMakeLists.txt
soubor. 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 .vs
adresáři) a určíte složky, CMakeWorkspaceSettings.json
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řenovém adresáři pracovního prostoru. Adresáře mimo aktuální pracovní prostor budou ignorovány. |
K nabídce Nastavení pracovního prostoru Project>CMake se můžete kdykoli dostat CMakeWorkspaceSettings.json
, i když je funkce CMake aktuálně zakázaná.
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í existující prostředí mezipaměti závisí na cmake-server
tom, které bylo odebrá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
cacheGenerationCommand
vlastnost tak, aby Sada Visual Studio požadovala potřebné soubory rozhraní API založené na souborech CMake. Další informace o této vlastnosti najdete v tématu CMakeSettings.json reference. - Soubor dotazu použijte k vyžádání souborů rozhraní API CMake při generování mezipaměti před otevřením v sadě Visual Studio. 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í potíží s pokročilou 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 v rámci .cmake/api/v1/response
sady Visual Studio 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
nástroji CMake najdete v dokumentaci k CMake.
Obsahuje projekt řádků (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 se po dokončení generování mezipaměti vygeneruje c plus plus informace IntelliSense.
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 řádek off-end in 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é 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, kde jsou nalezeny SUPERTUX_SOURCES_CXX. Například v seznamu (SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) atd.
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ými jsou dvě položky: add_executable a nastavit. 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 CMakeSettings.json
je váš aktivní konfigurační soubor CMake, můžete zadat možnosti IntelliSense pomocí v intelliSenseMode
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 se sadou 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 na vcpkg.cmake
hodnotu in 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 Povolení integrace 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 najdete v tématu Spuštění CMake z příkazového řádku nebo kanálu CI. CMakePresets.json
je podporován v sadě Visual Studio 2019 verze 16.10 nebo novější 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řepněte do 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 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 Otevřít > složku 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 Sada 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).
Import existující mezipaměti
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.
V Průzkumník řešení klikněte pravým tlačítkem myši
CMakeLists.txt
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 Sestavit řešení sestavení (F7 nebo Ctrl+Shift+B). > Ujistěte se, že cíl CMake je již vybrán v rozevíracím seznamu Po spuštění položky 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 beze CMakeLists.txt
změny souboru. 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í.
Ladicí relaci CMake můžete přizpůsobit nastavením vlastností v launch.vs.json
souboru. Další informace naleznete v tématu Konfigurace ladicí relace 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
nástroji CMake 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 po dokončení generování mezipaměti vygeneruje c plus plus informace IntelliSense.
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 řádek off-end in 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ž v souborech nebo v CMakeLists.txt
souborech CMakeSettings.json
provedete 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. Cíle můžete ladit ze všech projektů CMake, které se účastní této konfigurace CMake.
Místní nabídka ukazuje, co se dá vytvořit – v tomto případě hello-cmake-a \ hello-cmake.exe (Project hello-cmake) a hello-cmake-b\hello-cmake.exe (Project 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, použije technologie IntelliSense a příkazy sestavení a ladění pouze pro ty 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
CMakeCache.txt
soubor z kořenové složky sestavení v editoru. (Všechny úpravy, které tady uděláte, seCMakeCache.txt
vymažou, když mezipaměť vyčistíte. 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 s jedním souborem
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
Vlastní 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
Instalace a používání balíčků s CMake v sadě Visual Studio