Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
CMake är ett plattformsoberoende verktyg med öppen källkod för att definiera byggprocesser som körs på flera plattformar. Den här artikeln förutsätter att du är bekant med CMake. Mer information om CMake finns i CMake-dokumentationen. CMake-självstudien är en bra utgångspunkt för att få mer kunskap.
Not
CMake har blivit mer och mer integrerat med Visual Studio under de senaste versionerna. Om du vill se dokumentationen för den önskade versionen av Visual Studio använder du väljaren Version längst upp i innehållsförteckningen på den här sidan.
Med Visual Studios interna stöd för CMake kan du redigera, skapa och felsöka CMake-projekt i Windows, Windows-undersystemet för Linux (WSL) och fjärrsystem från samma instans av Visual Studio. CMake-projektfiler (till exempel CMakeLists.txt
) används direkt av Visual Studio för IntelliSense och surfning. Visual Studio anropar cmake.exe
direkt för CMake-konfiguration och -version.
Installation
C++ CMake-verktyg för Windows installeras som en del av Stationär utveckling med C++ och Linux-utveckling med C++ arbetsflöden. Både C++ CMake-verktyg för Windows och Linux Development med C++ krävs för plattformsoberoende CMake-utveckling.
I installationsprogrammet väljs skrivbordsutveckling med C++ i rullgardinsmenyn och C++ CMake-verktyg för Windows väljs.
Mer information finns i Installera C++ Linux-arbetsbelastningen i Visual Studio.
IDE-integrering
När du öppna en mapp som innehåller en CMakeLists.txt
fil händer följande saker.
Dialogrutan innehåller följande alternativ: klona en lagringsplats, öppna ett projekt eller en lösning, öppna en lokal mapp eller skapa ett nytt projekt. Öppna en lokal mapp är markerad i skärmbilden.
Visual Studio lägger till CMake- objekt i menyn Project, med kommandon för att visa och redigera CMake-skript.
Solution Explorer visar mappstrukturen och filerna.
Visual Studio kör CMake och genererar CMake-cachefilen (
CMakeCache.txt
) för standardkonfigurationen. Kommandoraden CMake visas i utdatafönster, tillsammans med andra utdata från CMake.I bakgrunden börjar Visual Studio indexera källfilerna för att aktivera IntelliSense, bläddringsinformation, refaktorisering och så vidare. När du arbetar övervakar Visual Studio ändringar i redigeraren och även på disken för att hålla indexet synkroniserat med källorna.
Not
Från och med Visual Studio 2022 version 17.1 Förhandsversion 2, om din topp-nivå CMakeLists.txt
finns i en undermapp och inte i arbetsytans rot, uppmanas du att ange huruvida du vill aktivera CMake-integrering eller inte. Ytterligare information finns i CMake partiell aktivering.
När CMake-cachegenereringen har slutförts kan du också visa dina projekt ordnade logiskt efter mål. Välj knappen Välj vy på verktygsfältet Solution Explorer. I listan i Solution Explorer – Vyerväljer du CMake-målvy och trycker på Retur för att öppna CMake-målvyn:
Välj knappen Visa alla filer överst i Solution Explorer för att se alla CMake-genererade utdata i out/build/<config>
mappar.
Använd filen CMakeLists.txt
i varje projektmapp precis som i alla CMake-projekt. Du kan ange källfiler, hitta bibliotek, ange kompilator- och länkalternativ och ange annan systemrelaterad information. Mer information om CMake-språktjänster som tillhandahålls av Visual Studio finns i Redigera CMakeLists.txt filer.
Visual Studio använder en CMake-konfigurationsfil för att driva CMake-cachegenerering och -kompilering. Mer information finns i Konfigurera CMake-projekt och Bygga CMake-projekt.
Om du vill skicka argument till en körbar fil vid felsökningstillfället kan du använda en annan fil med namnet launch.vs.json
. Mer information om felsökning av CMake-projekt mellan plattformar i Visual Studio finns i Felsökning av CMake-projekt.
De flesta visual studio- och C++-språkfunktioner stöds av CMake-projekt i Visual Studio. Exempel är:
- Redigera och fortsätt för CMake-projekt
- Incredibuild-integrering för CMake-projekt
- AddressSanitizer-stöd för CMake-projekt
- Clang/LLVM-stöd
Not
För andra typer av projekt med öppen mapp används ytterligare en JSON-fil CppProperties.json
. Den här filen är inte relevant för CMake-projekt.
Konfigurera CMake-projekt
Steget Konfigurera CMake genererar projektets byggsystem. Det motsvarar att anropa cmake.exe
från kommandoraden. Mer information om konfigurationssteget för CMake finns i CMake-dokumentationen.
Visual Studio använder en CMake-konfigurationsfil för att driva CMake-generering och bygge.
CMakePresets.json
stöds av Visual Studio 2019 version 16.10 eller senare och är den rekommenderade CMake-konfigurationsfilen.
CMakePresets.json
stöds direkt av CMake och kan användas för att driva CMake-generering och bygge från Visual Studio, från VS Code, i en pipeline för kontinuerlig integrering och från kommandoraden i Windows, Linux och Mac. Mer information om CMakePresets.json
finns i Konfigurera och skapa med CMake-förinställningar.
CMakeSettings.json
är tillgängligt för kunder som använder en tidigare version av Visual Studio. Mer information om CMakeSettings.json
finns i Anpassa CMake-bygginställningar.
När du gör betydande ändringar i CMake-konfigurationsfilen eller en CMakeLists.txt
fil kör Visual Studio automatiskt steget konfigurera CMake. Du kan anropa konfigurationssteget manuellt: Välj Project > Configure Cache i verktygsfältet. Du kan också ändra konfigurationsinställningarna i Tools>Options>CMake>General.
Konfigurationsinställningarna för CMake anropas. Visa CMake-cachemeddelanden har valts. Under "När cacheminnet är inaktuellt" väljs alternativet "Kör aldrig konfigurera steg automatiskt".
Om konfigurationssteget slutförs utan fel styr den tillgängliga informationen C++ IntelliSense och språktjänster. Den används också i bygg- och felsökningsåtgärder.
Du kan också öppna en befintlig CMake-cache i Visual Studio. Mer information finns i Öppna en befintlig cache.
Anpassa konfigurationsfeedback och meddelanden
Som standard ignoreras de flesta konfigurationsmeddelanden om det inte finns ett fel. Om du vill se alla meddelanden väljer du Verktyg>Alternativ>CMake>aktivera utförliga CMake-diagnostikutdata.
Du kan också inaktivera alla CMake-cachemeddelanden (guldstaplar) genom att avmarkera Visa CMake-cachemeddelande.
Anpassa mål Visa källgrupper
Som standardinställning ignorerar vyn CMake-målens följande källgrupper: Källfiler, Huvudfiler, Resurser, och Objektfiler. Dessa grupper ingår som standard i de flesta CMake-projekt och skulle i onödan öka antalet klick som krävs för att navigera i målvyn.
Du kan aktivera användningen av dessa källgrupper genom att välja Verktyg>Alternativ>CMake>Aktivera användningen av ignorerade källgrupper i CMake-målvyn.
Felsöka ett CMake-cache-fel
Om du behöver mer information om tillståndet för CMake-cachen för att diagnostisera ett problem öppnar du huvudmenyn Project eller snabbmenyn CMakeLists.txt
i Solution Explorer för att köra något av följande kommandon:
View CMakeCache.txt öppnar
CMakeCache.txt
-filen från byggkatalogen i redigeraren. Alla ändringar du gör här för attCMakeCache.txt
raderas om du rensar cacheminnet. Om du vill göra ändringar som kvarstår när du har rensat cacheminnet kan du läsa Anpassa CMake-inställningar eller Konfigurera och skapa med CMake-förinställningar.Ta bort cache och konfigurera om tar bort byggmappen och konfigurerar om från en ren cache.
Konfigurera cache tvingar genereringssteget att köras även om Visual Studio anser att miljön är aktuell.
Skapa CMake-projekt
CMake-byggsteget skapar ett redan genererat binärt projektträd. Det motsvarar att anropa cmake --build
från kommandoraden. Mer information om CMake-byggsteget finns i CMake-dokumentationen.
För att skapa ett CMake-projekt har du följande alternativ:
I verktygsfältet hittar du listrutan Startobjekt. Välj det önskade målet och tryck på F5eller välj knappen Kör i verktygsfältet. Projektet byggs automatiskt först, precis som en Visual Studio-lösning.
Högerklicka på CMake-målet med CMake-målvyn aktiv i Solution Explorer och välj Skapa på snabbmenyn.
På huvudmenyn väljer du Build > Build All. Kontrollera att ett CMake-mål redan är valt i listrutan för startobjekt i verktygsfältet.
Som förväntat visas byggresultat i Utdatafönster och Fellista.
C Skapa varningar om konverteringar som kan leda till dataförlust, till exempel konvertering från en flyttal till ett heltal, är synliga.
Redigera bygginställningar
Visual Studio använder en CMake-konfigurationsfil för att köra CMake-versioner. CMake-konfigurationsfiler kapslar in byggalternativ som inbyggda byggverktygsväxlar och miljövariabler. Om CMakePresets.json
är din aktiva konfigurationsfil kan du läsa Konfigurera och skapa med CMake-förinställningar. Om CMakeSettings.json
är din aktiva konfigurationsfil kan du läsa Anpassa CMake-bygginställningar.
CMakePresets.json
finns i Visual Studio 2019 version 16.10 eller senare och är den rekommenderade CMake-konfigurationsfilen.
Felsöka CMake-projekt
Alla körbara CMake-mål visas i rullgardinsmenyn Startobjekt i verktygsmenyn. Börja felsöka genom att välja en och trycka på knappen Felsöka > Starta felsökning i verktygsfältet. I ett CMake-projekt är alternativet Aktuellt dokument endast giltigt för .cpp filer.
Listrutan innehåller följande alternativ: Visa/dölj felsökningsmål, aktuellt dokument, exempel (som är markerat), box2d_tests och samples-noGUI.
Kommandona Debug eller F5 skapar först projektet om ändringar har gjorts sedan föregående version. Ändringar i CMake-konfigurationsfilen (CMakePresets.json
eller CMakeSettings.json
) eller en CMakeLists.txt
gör att CMake-cachen återskapas.
Du kan anpassa en CMake-felsökningssession genom att ange egenskaper i filen launch.vs.json
. Om du vill anpassa felsökningsinställningarna för ett specifikt mål väljer du målet i listrutan Startobjekt och väljer Felsöka > Felsökning och Starta inställningar för <aktiv-mål->. Mer information om CMake-felsökningssessioner finns i Konfigurera CMake-felsökningssessioner.
Bara min kod för CMake-projekt
När du skapar för Windows med hjälp av MSVC-kompilatorn har CMake-projekt stöd för felsökning av Just My Code. Om du vill ändra inställningen Just My Code går du till Tools>Options>Debugging>General. För mer information om felsökning med Just My Code, se Debugga endast användarkod med Just My Code.
Redigera och fortsätt för CMake-projekt
När du skapar för Windows med MSVC-kompilatorn har CMake-projekt stöd för Redigera och Fortsätt. Lägg till följande kod i CMakeLists.txt
-filen för att aktivera Redigera och Fortsätt.
if(MSVC)
target_compile_options(<target> PUBLIC "/ZI")
target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()
Mer information om Redigera och fortsätt finns i Konfigurera redigera och fortsätt (C#, VB, C++).
Ansluta till ett CMake-projekt som körs på Linux
Med Visual Studio kan du felsöka en process som körs på ett fjärranslutet Linux-system eller WSL och felsöka den med GDB-felsökningsprogrammet. Kom igång genom att välja Felsöka>Koppla till process...anger du Anslutningstyp till SSHoch väljer ditt Anslutningsmål i listan över anslutningar i Anslutningshanteraren. Välj en process i listan över tillgängliga processer och tryck på Bifoga. GDB måste vara installerat på Linux-datorn. Mer information om SSH-anslutningar finns i Anslutningshanteraren
Följande alternativ är tillgängliga i dialogrutan: Anslutningstyp (inställd på SSH), anslutningsmålet (inställt på demo@ 172. 20. 60. 6) och en lista över tillgängliga processer som du kan koppla till."
Partiell aktivering av CMake
I Visual Studio 2022 version 17.1 och senare aktiveras inte CMake-funktioner automatiskt om rotmappen inte innehåller någon CMakeLists.txt
fil. I stället får du en dialogruta om du vill aktivera CMake-funktioner för projektet. Om du avböjer startar inte CMake-cachegenereringen och CMake-konfigurationer (från CMakeSettings.json
eller CMakePresets.json
) visas inte i listrutan konfiguration. Om du accepterar tas du till en konfigurationsfil på arbetsytenivå, CMakeWorkspaceSettings.json
(lagras i katalogen .vs
) för att ange de mappar som du vill aktivera CMake för. (Dessa mappar innehåller dina rotfiler CMakeLists.txt
).
De godkända egenskaperna är:
Egenskap | Beskrivning |
---|---|
enableCMake |
Aktivera Visual Studio-integrering för den här arbetsytan. |
sourceDirectory |
En sträng eller matris med strängar som anger katalogen eller katalogerna med CMakeLists.txt . Makron (till exempel ${workspaceRoot} ) tillåts. Relativa sökvägar baseras på arbetsytans rot. Kataloger utanför den aktuella arbetsytan ignoreras. |
Du kan nå CMakeWorkspaceSettings.json
via Project>CMake-arbetsyteinställningar menykommando när som helst, även om CMake-funktioner för närvarande är inaktiverade.
Öppna en befintlig cache
När du öppnar en befintlig CMake-cachefil (CMakeCache.txt
) försöker Visual Studio inte hantera cachen och byggträdet åt dig. Dina anpassade eller önskade verktyg har fullständig kontroll över hur CMake konfigurerar projektet.
Du kan lägga till en befintlig CMake-cache i ett öppet projekt. Det görs på samma sätt som du lägger till en ny konfiguration. Mer information finns i vårt blogginlägg om att öppna en befintlig cache i Visual Studio.
Obs
Standardmiljön för befintlig cache är beroende av cmake-server
, som togs bort från CMake i version 3.20. Om du vill fortsätta använda befintliga cachefunktioner i Visual Studio 2019 version 16.10 och senare gör du något av följande:
- Installera CMake version 3.19 eller lägre manuellt. Ange sedan egenskapen
cmakeExecutable
i din befintliga cachekonfiguration för att använda den versionen av CMake. - I din befintliga cachekonfiguration anger du egenskapen
cacheGenerationCommand
så att Visual Studio kan begära nödvändiga CMake-filbaserade API-filer. Mer information om den egenskapen finns i CMakeSettings.json referens. - Använd en frågefil för att begära CMake-filbaserade API-filer när du genererar din cache innan den öppnas i Visual Studio. Anvisningar för frågefiler finns i nästa avsnitt, felsökning av avancerad CMake-cache.
Avancerad felsökning av CMake-cache
Visual Studio använder CMake filbaserade API- (i version 3.14 och senare) för att fylla i redigeraren med information som är specifik för projektstrukturen. Mer information finns i C++-teamets blogginlägg om multi-root-arbetsytor och filbaserade API.
Innan du genererar CMake-cachen kan dina anpassade eller önskade verktyg behöva skapa en frågefil med namnet .cmake/api/v1/query/client-MicrosoftVS/query.json
i utdatamappen för bygget (mappen som innehåller CMakeCache.txt
). Frågefilen ska innehålla följande innehåll:
{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}
När dina anpassade eller önskade verktyg genererar din cache placerar CMake filer under .cmake/api/v1/response
som Visual Studio använder för att fylla i redigeraren med information som är specifik för projektstrukturen.
Redigera CMakeLists.txt
filer
Om du vill redigera en CMakeLists.txt
fil högerklickar du på filen i Solution Explorer och väljer Öppna. Om du gör ändringar i filen visas ett gult statusfält och informerar dig om att IntelliSense uppdateras. Det ger dig en chans att avbryta uppdateringsåtgärden. Mer information om CMakeLists.txt
finns i CMake-dokumentationen.
Den innehåller projektlinjer (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) och installera (TARGETS hello DESTINATION hello/bin). Ett meddelande överst i fönstret säger att c plus IntelliSense-information uppdateras när C Make har genererat cacheminnet.
Så snart du sparar filen körs konfigurationssteget automatiskt igen och visar information i fönstret Output. Fel och varningar visas i fellista eller i fönstret utdata. Dubbelklicka på ett fel i fellistan för att navigera till den felaktiga raden i CMakeLists.txt
.
Ett CMake-felmeddelande på rad 3 i CMakeLists.txt är markerat. Informationen är att C Make inte kunde hitta en paketkonfigurationsfil som tillhandahålls av sqlite3. C Make letade efter den i CMAKE_MODULE_PATH men kunde inte hitta den. Förslaget är att lägga till installationsprefixet "sqlite3" i CMAKE_PREFIX_PATH eller ange sqlite3_DIR till en katalog som innehåller sqlite3Config.cmake och/eller sqlitet3-config.cmake.
Språktjänster för CMake
Språktjänster för CMake är tillgängliga i Visual Studio 2019 version 16.5 eller senare. Språktjänster stöder kodnavigeringsfunktioner som Gå till definition, Titta på definitionoch Hitta alla referenser för CMake-variabler, funktioner och mål i CMake-skriptfiler. Mer information finns i Kodnavigering för CMake-skript.
Resultaten för var SUPERTUX_SOURCES_CXX hittas visas. Till exempel i list(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) och så vidare.
Manipulering av CMake-projekt
CMake-projektmanipulering är tillgängligt i Visual Studio 2019 version 16.5 eller senare. Med projektmanipulering kan du lägga till, ta bort och byta namn på källfiler och mål i CMake-projektet utan att redigera CMake-skript manuellt. När du lägger till eller tar bort filer från Solution Explorer redigerar Visual Studio automatiskt ditt CMake-projekt. Det kan finnas mer än en plats där det är klokt att lägga till eller ta bort en referens till ett CMake-skript. I så fall frågar Visual Studio var du vill göra ändringen och visar en förhandsgranskning av de föreslagna ändringarna. Stegvisa instruktioner finns i Lägg till, Ta bort och Byt namn på filer och mål i CMake Projects.
En trädvy visar CMakeLists.txt, under vilka det finns två objekt: add_executable och set. Uppsättningen är avbockad. I förhandsgranskningsfönstret visas var ändringar kommer att göras. Raduppsättningen PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" visar "Demo.cpp" markerad före den avslutande parentesen. Använd-knappen accepterar ändringen, eller så kan du trycka på Avbryt.
IntelliSense för CMake-projekt
Visual Studio använder som standard IntelliSense-läget som matchar kompilatorn och målarkitekturen som anges av den aktiva CMake-konfigurationen.
Om CMakePresets.json
är din aktiva CMake-konfigurationsfil kan du ange IntelliSense-alternativ med intelliSenseMode
och intelliSenseOptions
i leverantörskartan för Visual Studio-inställningar. Mer information finns i referenskartan över leverantörer för Visual Studio Settings.
Om CMakeSettings.json
är din aktiva CMake-konfigurationsfil kan du ange IntelliSense-alternativ med intelliSenseMode
i CMakeSettings.json
. För mer information, se referens CMakeSettings.json
.
Konfigurera IntelliSense med CMake-verktygskedjans filer
I Visual Studio 2019 version 16.9 och senare konfigurerar Visual Studio automatiskt IntelliSense i CMake-projekt baserat på CMake-variabler när du använder en CMake-verktygskedjafil. Mer information finns i Konfigurera IntelliSense med CMake Toolchain Files.
Vcpkg-integrering
CMake-projekt som öppnas i Visual Studio integreras med vcpkg, en plattformsoberoende C/C++-beroendehanterare. Innan du använder vcpkg med Visual Studio måste du köra vcpkg integrate install
. Anvisningar och mer information om vcpkg finns i:
Om CMakeSettings.json
är din aktiva konfigurationsfil skickar Visual Studio automatiskt vcpkg-verktygskedjans fil (vcpkg.cmake
) till CMake. Det här beteendet inaktiveras automatiskt när du anger någon annan verktygskedja i konfigurationen för CMake-inställningar.
Om CMakePresets.json
är din aktiva konfigurationsfil måste du ange sökvägen till vcpkg.cmake
i CMakePresets.json
. Vi rekommenderar att du använder miljövariabeln VCPKG_ROOT
i stället för en absolut sökväg för att hålla filen delbar. Mer information finns i Aktivera vcpkg-integrering med CMake-förinställningar.
CMakePresets.json
finns i Visual Studio 2019 version 16.10 eller senare och är den rekommenderade CMake-konfigurationsfilen.
Kör CMake från kommandoraden
Om CMakePresets.json
är din aktiva CMake-konfigurationsfil kan du enkelt återskapa dina lokala versioner utanför Visual Studio. För mer information, se Kör CMake via kommandoraden eller en CI-pipeline.
CMakePresets.json
stöds i Visual Studio 2019 version 16.10 eller senare och är den rekommenderade CMake-konfigurationsfilen.
Om CMakeSettings.json
är din aktiva CMake-konfigurationsfil måste du manuellt skicka argumenten som kodas i din CMakeSettings.json
-fil till CMake. Om du har installerat CMake från Visual Studio Installer kan du köra det från kommandoraden genom att följa dessa steg:
Kör lämplig
vsdevcmd.bat
fil (x86/x64). Mer information finns i Använda Microsoft C++-verktygsuppsättningen från kommandoraden .Byt till din output-mapp.
Kör CMake för att skapa eller konfigurera din app.
Visual Studio 2017 har omfattande stöd för CMake, inklusive plattformsoberoende CMake-projekt. Komponenten Visual C++ Tools for CMake använder funktionen Open Folder för att göra det möjligt för IDE att använda CMake-projektfiler (till exempel CMakeLists.txt
) direkt för IntelliSense och surfning. Både Ninja- och Visual Studio-generatorer stöds. Om du använder en Visual Studio-generator genererar den en tillfällig projektfil och skickar den till MSBuild. Projektet läses dock aldrig in för IntelliSense- eller bläddringsändamål. Du kan också importera en befintlig CMake-cache.
Installation
Visual C++ Tools for CMake installeras som en del av Desktop-utveckling med C++ och Linux Development med C++ arbetsbelastningar.
Mer information finns i Installera C++ Linux-arbetsbelastningen i Visual Studio.
IDE-integrering
När du väljer Fil > Öppna > mapp för att öppna en mapp som innehåller en CMakeLists.txt
fil händer följande:
Visual Studio lägger till ett CMake- menyalternativ på huvudmenyn, med kommandon för att visa och redigera CMake-skript.
Solution Explorer visar mappstrukturen och filerna.
Visual Studio kör CMake och genererar eventuellt CMake-cachen för standardkonfigurationen , vilket är x86 Debug. Kommandoraden CMake visas i utdatafönster, tillsammans med andra utdata från CMake.
I bakgrunden börjar Visual Studio indexera källfilerna för att aktivera IntelliSense, bläddringsinformation, refaktorisering och så vidare. När du arbetar övervakar Visual Studio ändringar i redigeraren och även på disken för att hålla indexet synkroniserat med källorna.
Du kan öppna mappar som innehåller valfritt antal CMake-projekt. Visual Studio identifierar och konfigurerar alla top-nivå CMakeLists.txt
-filer i din arbetsyta. CMake-åtgärder (konfigurera, skapa, felsöka), C++ IntelliSense och surfning är tillgängliga för alla CMake-projekt på din arbetsyta.
Filerna och mapparna i ett C Make-projekt visas. Det finns en underkatalog för tester, CMakeLists.txtoch hello.cpp. Det finns en hello-cmake-vcpkg-mapp som innehåller CMakeLists.txt, CMakeSettings.jsonoch hello.cpp.
Du kan också visa dina projekt ordnade logiskt efter mål. Välj målvy i listrutan i Solution Explorer verktygsfält:
Visual Studio använder en fil med namnet CMakeSettings.json
för att lagra miljövariabler eller kommandoradsalternativ för CMake.
CMakeSettings.json
kan du också definiera och lagra flera CMake-byggkonfigurationer. Du kan enkelt växla mellan dem i IDE.
Annars använder du CMakeLists.txt
precis som i alla CMake-projekt för att ange källfiler, hitta bibliotek, ange kompilator- och länkalternativ och ange annan systemrelaterad information för bygge.
Om du behöver skicka argument till en körbar fil vid felsökningstillfället kan du använda en annan fil med namnet launch.vs.json
. I vissa scenarier genererar Visual Studio automatiskt dessa filer. Du kan redigera dem manuellt eller till och med skapa filen själv.
Not
För andra typer av Projekt med öppen mapp används ytterligare två JSON-filer: CppProperties.json
och tasks.vs.json
. Inget av dessa är relevanta för CMake-projekt.
Importera en befintlig cache
När du importerar en befintlig CMakeCache.txt
-fil extraherar Visual Studio automatiskt anpassade variabler och skapar en fördefinierad CMakeSettings.json
fil baserat på dem. Den ursprungliga cachen ändras inte på något sätt. Den kan fortfarande användas från kommandoraden, eller med vilket verktyg eller IDE som helst som används för att generera den. Den nya CMakeSettings.json
-filen placeras tillsammans med projektets rot-CMakeLists.txt
. Visual Studio genererar en ny cache baserad på inställningsfilen. Du kan åsidosätta automatisk cachegenerering i dialogrutan Tools > Options > CMake > Allmänt.
Allt i cachen importeras inte. Egenskaper som generatorn och platsen för kompilatorerna ersätts med standardvärden som är kända för att fungera bra med IDE.
Så här importerar du en befintlig cache
På huvudmenyn väljer du Arkiv > Öppna > CMake:
Det här kommandot visar guiden Importera CMake från Cache.
Gå till den
CMakeCache.txt
fil som du vill importera och välj sedan OK. Guiden Importera CMake-projekt från Cache visas:När guiden är klar kan du se den nya filen
CMakeCache.txt
i Solution Explorer bredvid rotfilen *CMakeLists.txt*
i ditt projekt.
Skapa CMake-projekt
För att skapa ett CMake-projekt har du följande alternativ:
I verktygsfältet Allmänt hittar du listrutan Konfigurationer. Det visar förmodligen Linux-Debug- eller x64-Debug som standard. Välj önskad konfiguration och tryck på F5eller välj knappen Kör (grön triangel) i verktygsfältet. Projektet byggs automatiskt först, precis som en Visual Studio-lösning.
Högerklicka på
CMakeLists.txt
i Solution Explorer och välj Skapa på snabbmenyn. Om du har flera mål i mappstrukturen kan du välja att skapa alla eller bara ett specifikt mål.På huvudmenyn väljer du Build > Build Solution (F7 eller Ctrl+Skift+B). Kontrollera att ett CMake-mål redan är markerat i listrutan startobjekt i verktygsfältet Allmänt.
Menyn innehåller alternativ som Lägg till, Öppna, Konfigurera uppgifter, Skapa, Rensa alla och så vidare.
Du kan anpassa byggkonfigurationer, miljövariabler, kommandoradsargument och andra inställningar i CMakeSettings.json
-filen. Det gör att du kan göra ändringar utan att ändra CMakeLists.txt
-filen. Mer information finns i Anpassa CMake-bygginställningar.
Som förväntat visas byggresultat i Utdatafönster och Fellista.
C gör byggvarningar om konverteringar som kan leda till dataförlust, såsom att konvertera från ett flyttal till ett heltal, synliga.
I en mapp med flera byggmål kan du ange vilket CMake-mål som ska skapas: Välj objektet Build på menyn CMake eller snabbmenyn CMakeLists.txt
för att ange målet. Om du anger Ctrl+Skift+B- i ett CMake-projekt skapas det aktuella aktiva dokumentet.
Att felsöka CMake-projekt
Om du vill felsöka ett CMake-projekt väljer du önskad konfiguration och trycker på F5. Du kan också trycka på knappen Kör i verktygsfältet. Om knappen Kör säger Välj startobjektväljer du listrutepilen och väljer det mål som du vill köra. (I ett CMake-projekt är alternativet Aktuellt dokument endast giltigt för .cpp filer.)
Kommandona Kör eller F5 skapar först projektet om ändringar har gjorts sedan föregående version.
Du kan anpassa en CMake-felsökningssession genom att ange egenskaper i filen launch.vs.json
. Mer information finns i Konfigurera CMake-felsökningssessioner.
Redigera CMakeLists.txt
filer
Om du vill redigera en CMakeLists.txt
fil högerklickar du på filen i Solution Explorer och väljer Öppna. Om du gör ändringar i filen visas ett gult statusfält och informerar dig om att IntelliSense uppdateras. Det ger dig en chans att avbryta uppdateringsåtgärden. Mer information om CMakeLists.txt
finns i CMake-dokumentationen.
Filen innehåller projektet (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) och installera (TARGETS hello DESTINATION hello/bin). Ett meddelande överst i fönstret säger att c plus IntelliSense-information uppdateras när C Make har genererat cacheminnet.
Så snart du sparar filen körs konfigurationssteget automatiskt igen och visar information i fönstret Output. Fel och varningar visas i fellista eller i fönstret utdata. Dubbelklicka på ett fel i fellistan för att navigera till den felaktiga raden i CMakeLists.txt
.
Ett CMake-felmeddelande på rad 3 i CMakeLists.txt är markerat. Informationen är att C Make inte kan hitta en paketkonfigurationsfil som tillhandahålls av sqlite3. C Make letade efter den i CMAKE_MODULE_PATH men kunde inte hitta den. Förslaget är att lägga till installationsprefixet "sqlite3" i CMAKE_PREFIX_PATH eller ange sqlite3_DIR till en katalog som innehåller sqlite3Config.cmake och/eller sqlitet3-config.cmake.
CMake-konfigureringssteg
När betydande ändringar görs i CMakeSettings.json
- eller i CMakeLists.txt
-filer, kör Visual Studio automatiskt CMake-konfigureringen igen. Om konfigurationssteget slutförs utan fel är informationen som samlas in tillgänglig i C++ IntelliSense och språktjänster. Den används också i bygg- och felsökningsåtgärder.
Flera CMake-projekt kan använda samma CMake-konfigurationsnamn (till exempel x86-Debug). Alla är konfigurerade och inbyggda (i sin egen build-rotmapp) när den konfigurationen har valts. Du kan felsöka målen från alla CMake-projekt som deltar i CMake-konfigurationen.
Snabbmenyn visar vad som kan skapas. I det här fallet hello-cmake-a \ hello-cmake.exe (Project hello-cmake) and hello-cmake-b\hello-cmake.exe (Project hello-cmake). Det senare är markerat.
Du kan begränsa byggen och felsöka sessioner till en delmängd av projekten på arbetsytan. Skapa en ny konfiguration med ett unikt namn i CMakeSettings.json
-filen. Tillämpa sedan konfigurationen endast på dessa projekt. När den konfigurationen har valts gäller IntelliSense och kommandona för att skapa och felsöka endast för de angivna projekten.
Felsöka ett CMake-cache-fel
Om du behöver mer information om tillståndet för CMake-cachen för att diagnostisera ett problem öppnar du huvudmenyn CMake eller snabbmenyn CMakeLists.txt
i Solution Explorer för att köra något av följande kommandon:
View Cache öppnar
CMakeCache.txt
-filen från rotmappen build i redigeraren. Alla ändringar du gör här för attCMakeCache.txt
raderas om du rensar cacheminnet. Information om hur du gör ändringar som sparas när cacheminnet har rensats finns i Anpassa CMake-inställningar.Öppna cachemappen öppnar ett Utforskarfönster i rotmappen för bygget.
Clean Cache tar bort rotmappen för bygget så att nästa CMake-konfigurationssteg börjar från en ren cache.
Generate Cache tvingar genereringssteget att köras även om Visual Studio anser att miljön är uppdaterad.
Automatisk cachegenerering kan inaktiveras i dialogrutan Verktyg > alternativ > CMake > Allmänt.
Kompilering av en enda fil
Om du vill skapa en enda fil i ett CMake-projekt högerklickar du på filen i Solution Explorer. Välj Kompilera från popup-menyn. Du kan också skapa den öppna filen i redigeraren med hjälp av huvudmenyn CMake:
Kör CMake från kommandoraden
Om du har installerat CMake från Visual Studio Installer kan du köra det från kommandoraden genom att följa dessa steg:
Kör lämplig
vsdevcmd.bat
fil (x86/x64). Mer information finns i Bygga på kommandoraden.Byt till din output-mapp.
Kör CMake för att skapa eller konfigurera din app.
I Visual Studio 2015 kan Visual Studio-användare använda en CMake-generator för att generera MSBuild-projektfiler, som IDE:t sedan använder för IntelliSense, surfning och kompilering.
Relaterat innehåll
- Självstudie: Skapa C++ plattformöverskridande projekt i Visual Studio
- Konfigurera ett Linux CMake-projekt
- Anslut till din fjärranslutna Linux-dator
- Anpassa CMake-bygginställningar
-
CMakeSettings.json
schemareferens - Konfigurera CMake-felsökningssessioner
- Distribuera, köra och felsöka ditt Linux-projekt
- fördefinierade konfigurationsreferens för CMake
- vcpkg i CMake-projekt
- Installera och använda paket med CMake i Visual Studio