Sdílet prostřednictvím


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.

Snímek obrazovky s instalačním programem sady Visual Studio

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.

Snímek obrazovky s prvním dialogovým oknem, které se otevře při spuštění sady Visual Studio

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ů:

Snímek obrazovky s oknem Průzkumník řešení Zobrazení Zobrazení složky je otevřené. Je zvýrazněná možnost C Nastavit cíle.

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:

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.jsonv 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.jsonv 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é.

Snímek obrazovky s možnostmi konfigurace CMake v okně nastavení sady Visual Studio

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, se CMakeCache.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:

  1. 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.

  2. 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.

  3. 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.

Snímek obrazovky s oknem Seznam chyb sady Visual Studio 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.

Snímek obrazovky s rozevíracím seznamem ladění sady Visual Studio

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í

Snímek obrazovky s nabídkou Připojit k procesu v sadě Visual Studio

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-servertom, 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.txtnástroji CMake najdete v dokumentaci k CMake.

Snímek obrazovky se souborem C Make Lists .txt upravovaným v sadě Visual Studio

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.

Snímek obrazovky s chybou C Make v seznamu chyb sady Visual Studio

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.

Snímek obrazovky s oknem Najít všechny odkazy v sadě Visual Studio

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.

Snímek obrazovky s dialogovým oknem Změny náhledu sady Visual Studio

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:

  1. Spusťte příslušný vsdevcmd.bat soubor (x86/x64). Další informace naleznete v tématu Sestavení na příkazovém řádku .

  2. Přepněte do výstupní složky.

  3. 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++ .

Snímek obrazovky s Instalační program pro Visual Studio Na kartě Jednotlivé komponenty je vybraná možnost Visual C plus plus nástroje pro CMake.

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.

Snímek obrazovky Průzkumník řešení sady Visual Studio

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:

Snímek obrazovky s tlačítkem rozevíracího seznamu v sadě Visual Studio Průzkumník řešení, které nabízí možnost zobrazení cílů CMake Která je vybrána.

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.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).

Import existující mezipaměti

  1. V hlavní nabídce zvolte Soubor > Otevřít > CMake:

    Snímek obrazovky s hlavní nabídkou sady Visual Studio Je vybrán soubor > Otevřít > C Make.

    Tento příkaz zobrazí průvodce importem CMake z mezipaměti .

  2. Přejděte na CMakeCache.txt soubor, který chcete importovat, a pak zvolte OK. Zobrazí se průvodce importem projektu CMake z mezipaměti :

    Snímek obrazovky s průvodcem importem projektu CMake z mezipaměti Cesta k adresáři projektu CMake, který se má importovat, přejde do textového pole Složka.

    Po dokončení průvodce uvidíte nový CMakeCache.txt soubor v Průzkumník řešení vedle kořenového CMakeLists.txt souboru v projektu.

Sestavování projektů CMake

Pokud chcete vytvořit projekt CMake, máte tyto možnosti:

  1. 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.

  2. 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.

  3. 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é .

Snímek obrazovky Průzkumník řešení sady Visual Studio po kliknutí pravým tlačítkem na CMakeLists.txt

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.

Snímek obrazovky s oknem Seznam chyb sady Visual Studio

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.)

Snímek obrazovky s rozevíracím seznamem Vybrat položku po spuštění pro projekt CMake Můžete vybrat aktuální dokument nebo hello-cmake.exe

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.txtnástroji CMake najdete v dokumentaci k CMake.

Snímek obrazovky se souborem C Make Lists .txt upravovaným v sadě Visual Studio

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.

Snímek obrazovky s chybou C Make v seznamu chyb sady Visual Studio

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.

Snímek obrazovky s hlavní nabídkou sady Visual Studio, která se otevře jenom pro sestavení 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, se CMakeCache.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 :

Snímek obrazovky místní nabídky CMake > Compile Obsahuje jednu položku: Bullet3Collision.

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:

  1. Spusťte příslušný vsdevcmd.bat soubor (x86/x64). Další informace naleznete v tématu Sestavení na příkazovém řádku.

  2. Přepněte do výstupní složky.

  3. 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