CMake-Projekte in Visual StudioCMake projects in Visual Studio

CMake ist ein plattformübergreifendes Open Source-Tool, das zum Definieren von Buildprozessen verwendet wird, die auf mehreren Plattformen ausgeführt werden.CMake is a cross-platform, open-source tool for defining build processes that run on multiple platforms. In diesem Artikel wird davon ausgegangen, dass Sie mit CMake vertraut sind.This article assumes you're familiar with CMake. Weitere Informationen finden Sie unter Build, Test and Package Your Software With CMake (Erstellen, Testen und Packen Ihrer Software mit CMake).You can learn more about it at Build, Test and Package Your Software With CMake.

Hinweis

CMake wurde in den letzten Releases immer mehr in Visual Studio integriert.CMake has become more and more integrated with Visual Studio over the past few releases. Um die Dokumentation für Ihre bevorzugte Version von Visual Studio anzuzeigen, verwenden Sie das Auswahlsteuerelement Version.To see the documentation for your preferred version of Visual Studio, use the Version selector control. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.It's found at the top of the table of contents on this page.

Die Komponente C++-CMake-Tools für Windows verwendet die Funktion Ordner öffnen, um CMake-Projektdateien (z. B. CMakeLists.txt) direkt für IntelliSense und das Durchsuchen nutzen zu können.The C++ CMake tools for Windows component uses the Open Folder feature to consume CMake project files (such as CMakeLists.txt) directly for the purposes of IntelliSense and browsing. Es werden sowohl Ninja- als auch Visual Studio-Generatoren unterstützt.Both Ninja and Visual Studio generators are supported. Wenn Sie einen Visual Studio-Generator verwenden, generiert dieser eine temporäre Projektdatei und übergibt sie an „msbuild.exe“.If you use a Visual Studio generator, it generates a temporary project file and passes it to msbuild.exe. Das Projekt wird jedoch nie für IntelliSense oder zum Durchsuchen geladen.However, the project is never loaded for IntelliSense or browsing purposes. Sie können auch einen vorhandenen CMake-Cache importieren.You can also import an existing CMake cache.

InstallationInstallation

Die Komponente C++-CMake-Tools für Windows wird als Teil der Workloads Desktopentwicklung mit C++ und Linux Entwicklung mit C++ installiert.C++ CMake tools for Windows is installed as part of the Desktop development with C++ and Linux Development with C++ workloads. Weitere Informationen finden Sie unter Erstellen und Konfigurieren eines Linux-CMake-Projekts.For more information, see Cross-platform CMake projects.

CMake-Komponente in der Workload „Desktopentwicklung mit C++“

Weitere Informationen finden Sie unter Install the C++ Linux workload in Visual Studio (Installieren der C++-Workload unter Linux in Visual Studio).For more information, see Install the C++ Linux workload in Visual Studio.

IDE-IntegrationIDE Integration

Wenn Sie auf Datei > Öffnen > Ordner klicken, um einen Ordner zu öffnen, der eine CMakeLists.txt-Datei enthält, geschieht Folgendes:When you choose File > Open > Folder to open a folder containing a CMakeLists.txt file, the following things happen:

  • Visual Studio fügt ein CMake-Element zum Menü Projekt mit Befehlen zum Anzeigen und Bearbeiten von CMake-Skripts hinzu.Visual Studio adds CMake items to the Project menu, with commands for viewing and editing CMake scripts.

  • Der Projektmappen-Explorer zeigt die Ordnerstruktur und die Dateien an.Solution Explorer displays the folder structure and files.

  • Visual Studio führt „cmake.exe“ aus und generiert die CMake-Cachedatei (CMakeCache.txt) für die Standardkonfiguration (x64 Debug).Visual Studio runs cmake.exe and generates the CMake cache file (CMakeCache.txt) for the default (x64 Debug) configuration. Die CMake-Befehlszeile wird im Ausgabefenster zusammen mit zusätzlichen Ausgaben von CMake angezeigt.The CMake command line is displayed in the Output Window, along with additional output from CMake.

  • Im Hintergrund beginnt Visual Studio damit, die Quelldateien zu indizieren, um IntelliSense, das Durchsuchen von Informationen, das Refactoring und vieles mehr zu ermöglichen.In the background, Visual Studio starts to index the source files to enable IntelliSense, browsing information, refactoring, and so on. Während Sie arbeiten, überwacht Visual Studio die Änderungen im Editor und auf dem Datenträger, damit der Index mit den Quellen synchron ist.As you work, Visual Studio monitors changes in the editor and also on disk to keep its index in sync with the sources.

Sie können Ordner öffnen, die eine beliebige Anzahl von CMake-Projekten enthalten.You can open folders containing any number of CMake projects. Visual Studio erkennt und konfiguriert alle CMakeLists.txt-Stammdateien in Ihrem Arbeitsbereich.Visual Studio detects and configures all the "root" CMakeLists.txt files in your workspace. CMake-Vorgänge (Konfigurieren, Erstellen, Debuggen), IntelliSense für C++ und das Durchsuchen sind für alle CMake-Projekte in Ihrem Arbeitsbereich verfügbar.CMake operations (configure, build, debug), C++ IntelliSense, and browsing are available to all CMake projects in your workspace.

CMake-Projekte mit mehreren Stammdateien

Sie können die Projekte auch logisch strukturiert nach Zielen anzeigen.You can also view your projects organized logically by targets. Wählen Sie in der Dropdownliste der Symbolleiste des Projektmappen-Explorers die Option Zielansicht aus:Choose Targets view from the dropdown in the Solution Explorer toolbar:

Schaltfläche für CMake-Zielansicht

Klicken Sie oben im Projektmappen-Explorer auf Alle Dateien anzeigen, um die von CMake generierten Ausgaben in den Ordnern out/build<config> anzuzeigen.Click the Show All Files button at the top of Solution Explorer to see all the CMake-generated output in the out/build/<config> folders.

Visual Studio verwendet eine Konfigurationsdatei namens CMakeSettings.json.Visual Studio uses a configuration file called CMakeSettings.json. Mit dieser Datei können Sie mehrere Buildkonfigurationen definieren und speichern und in der IDE zwischen ihnen wechseln.This file lets you define and store multiple build configurations, and conveniently switch between them in the IDE. Eine Konfiguration ist ein Visual Studio-Konstrukt, das Einstellungen kapselt, die für einen bestimmten Buildtyp spezifisch sind.A configuration is a Visual Studio construct that encapsulates settings that are specific to a given build type. Die Einstellungen werden verwendet, um die Standardbefehlszeilenoptionen zu konfigurieren, die Visual Studio an cmake.exe übergibt.The settings are used to configure the default command-line options that Visual Studio passes to cmake.exe. Sie können hier auch weitere CMake-Optionen angeben und alle weiteren gewünschten Variablen definieren.You can also specify additional CMake options here, and define any additional variables you like. Alle Optionen werden entweder als interne oder externe Variablen in den CMake-Cache geschrieben.All options are written to the CMake cache either as internal or external variables. In Visual Studio 2019 bietet der Editor für CMake-Einstellungen eine bequeme Möglichkeit zum Bearbeiten der Einstellungen.In Visual Studio 2019, the CMake Settings Editor provides a convenient way to edit your settings. Weitere Informationen finden Sie unter Customize CMake settings (Anpassen von CMake-Einstellungen).For more information, see Customize CMake settings.

Die Einstellung intelliSenseMode wird nicht an CMake übergeben, sondern wird nur von Visual Studio verwendet.One setting, intelliSenseMode isn't passed to CMake, but is used only by Visual Studio.

Verwenden Sie die Datei CMakeLists.txt in jedem Projektordner genau so wie in jedem anderen CMake-Projekt.Use the CMakeLists.txt file in each project folder just as you would in any CMake project. Sie können Quelldateien angeben, Bibliotheken suchen, Compiler- und Linkeroptionen festlegen und weitere Informationen im Zusammenhang mit dem Buildsystem angeben.You can specify source files, find libraries, set compiler and linker options, and specify other build system-related information.

Sie können eine andere Datei namens launch.vs.json verwenden, um zur Debugzeit Argumente an eine ausführbare Datei zu übergeben.To pass arguments to an executable at debug time, you can use another file called launch.vs.json. In einigen Szenarios werden diese Dateien von Visual Studio automatisch generiert.In some scenarios, Visual Studio automatically generates these files. Sie können sie manuell bearbeiten oder sogar die Datei selbst erstellen.You can edit them manually, or even create the file yourself.

Hinweis

Für andere Arten von „Ordner öffnen“-Projekten werden zwei zusätzliche JSON-Dateien verwendet: CppProperties.json und tasks.vs.json.For other kinds of Open Folder projects, two additional JSON files are used: CppProperties.json and tasks.vs.json. Diese sind für CMake-Projekte jedoch nicht relevant.Neither of these are relevant for CMake projects.

Öffnen eines vorhandenen CachesOpen an existing cache

Wenn Sie eine vorhandene CMake-Cachedatei (CMakeCache.txt) öffnen, versucht Visual Studio nicht, Ihren Cache und die Buildstruktur für Sie zu verwalten.When you open an existing CMake cache file (CMakeCache.txt), Visual Studio doesn't try to manage your cache and build tree for you. Ihre benutzerdefinierten oder bevorzugten Tools haben die umfassende Kontrolle darüber, wie CMake das Projekt konfiguriert.Your custom or preferred tools have complete control over how CMake configures your project. Klicken Sie auf Datei > Öffnen > CMake, um einen vorhandenen Cache in Visual Studio zu öffnen.To open an existing cache in Visual Studio, choose File > Open > CMake. Navigieren Sie dann zu einer vorhandenen CMakeCache.txt-Datei.Then, navigate to an existing CMakeCache.txt file.

Sie können einem geöffneten Projekt einen vorhandenen CMake-Cache hinzufügen.You can add an existing CMake cache to an open project. Dies erfolgt auf die gleiche Weise wie das Hinzufügen einer neuen Konfiguration.It's done the same way you'd add a new configuration. Weitere Informationen finden Sie in unserem Blogbeitrag zum Öffnen eines vorhandenen Caches in Visual Studio.For more information, see our blog post on opening an existing cache in Visual Studio.

Erstellen von CMake-ProjektenBuilding CMake projects

Folgende Optionen stehen Ihnen zum Erstellen eines CMake-Projekts zur Verfügung:To build a CMake project, you have these choices:

  1. Suchen Sie auf der Symbolleiste „Allgemein“ nach dem Dropdownmenü Konfigurationen.In the General toolbar, find the Configurations dropdown. Es wird wahrscheinlich standardmäßig „x64-Debug“ angezeigt.It probably shows "x64-Debug" by default. Klicken Sie auf die bevorzugte Konfiguration, und drücken Sie F5 oder auf der Symbolleiste auf die Schaltfläche Ausführen (grünes Dreieck).Select the preferred configuration and press F5, or click the Run (green triangle) button on the toolbar. Das Projekt wird genau wie eine Visual Studio-Projektmappe zunächst erstellt.The project automatically builds first, just like a Visual Studio solution.

  2. Klicken Sie mit der rechten Maustaste auf CMakeLists.txt und anschließend im Kontextmenü auf Erstellen.Right click on CMakeLists.txt and select Build from the context menu. Wenn mehrere Ziele in Ihrer Ordnerstruktur vorhanden sind, können Sie auswählen, den Build für alle oder nur für ein bestimmtes Ziel durchzuführen.If you have multiple targets in your folder structure, you can choose to build all or only one specific target.

  3. Klicken Sie im Hauptmenü auf Erstellen > Alle erstellen (F7 oder STRG+UMSCHALT+B).From the main menu, select Build > Build All (F7 or Ctrl+Shift+B). Stellen Sie sicher, dass ein CMake-Ziel bereits in der Dropdownliste Startelement auf der Symbolleiste Allgemein ausgewählt ist.Make sure that a CMake target is already selected in the Startup Item dropdown in the General toolbar.

CMake-Menübefehl „Erstellen“CMake build menu command

Erwartungsgemäß werden die Buildergebnisse im Ausgabefenster und in der Fehlerliste angezeigt.As you would expect, build results are shown in the Output Window and Error List.

CMake-BuildfehlerCMake build errors

In einem Ordner mit mehreren Buildzielen können Sie angeben, welches CMake-Ziel erstellt werden soll: Klicken Sie im CMake-Menü auf das Element Erstellen oder das Kontextmenü CMakeLists.txt, um das Ziel anzugeben.In a folder with multiple build targets, you can specify which CMake target to build: Choose the Build item on the CMake menu or the CMakeLists.txt context menu to specify the target. Wenn Sie in einem CMake-Projekt STRG+UMSCHALT+B drücken, wird das derzeit aktive Dokument erstellt.If you enter Ctrl+Shift+B in a CMake project, it builds the current active document.

Debuggen von CMake-ProjektenDebugging CMake projects

Wenn Sie ein CMake-Projekt debuggen möchten, wählen Sie die gewünschte Konfiguration aus, und drücken Sie F5. Klicken Sie alternativ auf die Schaltfläche Ausführen auf der Symbolleiste.To debug a CMake project, choose the preferred configuration and press F5, or press the Run button in the toolbar. Wenn die Schaltfläche Ausführen die Option „Startelement auswählen“ anzeigt, klicken Sie auf den Dropdownpfeil.If the Run button says "Select Startup Item", select the dropdown arrow. Wählen Sie das Ziel aus, das Sie ausführen möchten.Choose the target that you want to run. (In einem CMake-Projekt ist die Option „Aktuelles Dokument“ nur für CPP-Dateien gültig.)(In a CMake project, the "Current document" option is only valid for .cpp files.)

CMake-Schaltfläche „Ausführen“CMake run button

Durch Ausführen oder F5 wird das Projekt zunächst erstellt, wenn seit dem vorherigen Build Änderungen vorgenommen wurden.The Run or F5 commands first build the project if changes have been made since the previous build. Änderungen an CMakeSettings.json bewirken, dass der CMake-Cache erneut generiert wird.Changes to CMakeSettings.json cause the CMake cache to be regenerated.

Sie können eine CMake-Debugsitzung durch das Festlegen von Eigenschaften in der Datei launch.vs.json anpassen.You can customize a CMake debugging session by setting properties in the launch.vs.json file. Weitere Informationen finden Sie unter Configure CMake debugging sessions (Konfigurieren von CMake-Debugsitzungen).For more information, see Configure CMake debugging sessions.

„Nur eigenen Code“ für CMake-ProjekteJust My Code for CMake projects

Wenn Sie für Windows mit dem MSVC-Compiler erstellen, unterstützen CMake-Projekte das „Nur eigenen Code“-Debuggen.When you build for Windows using the MSVC compiler, CMake projects have support for Just My Code debugging. Navigieren Sie zu Extras > Optionen > Debuggen > Allgemein, um die „Nur eigenen Code“-Einstellung zu ändern.To change the Just My Code setting, go to Tools > Options > Debugging > General.

Vcpkg-IntegrationVcpkg integration

Wenn Sie vcpkg installiert haben, integrieren in Visual Studio geöffnete CMake-Projekte automatisch die vcpkg-Toolkettendatei.If you have installed vcpkg, CMake projects opened in Visual Studio automatically integrate the vcpkg toolchain file. Dies bedeutet, dass für die Verwendung von vcpkg mit Ihren CMake-Projekten keine zusätzliche Konfiguration erforderlich ist.That means no additional configuration is required to use vcpkg with your CMake projects. Diese Unterstützung kann sowohl für lokale vcpkg-Installationen als auch für vcpkg-Installationen auf Remotesystemen verwendet werden, die Sie als Ziel verwenden.This support works for both local vcpkg installations and vcpkg installations on remote systems that you're targeting. Dieses Verhalten wird automatisch deaktiviert, wenn Sie eine andere Toolkette in der Konfiguration der CMake-Einstellungen angeben.This behavior is disabled automatically when you specify any other toolchain in your CMake Settings configuration.

Anpassen von KonfigurationsmeldungenCustomize configuration feedback

Die meisten Konfigurationsmeldungen werden standardmäßig unterdrückt, es sei denn, es ist ein Fehler aufgetreten.By default, most configuration messages are suppressed unless there's an error. Sie können alle Nachrichten anzeigen, indem Sie dieses Feature über Extras > Optionen > CMake aktivieren.You can see all messages by enabling this feature in Tools > Options > CMake.

Konfigurieren von CMake-DiagnoseoptionenConfiguring CMake diagnostic options

Bearbeiten von CMakeLists.txt-DateienEditing CMakeLists.txt files

Wenn Sie eine CMakeLists.txt-Datei bearbeiten möchten, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei und danach auf Öffnen.To edit a CMakeLists.txt file, right-click on the file in Solution Explorer and choose Open. Wenn Sie Änderungen an der Datei vornehmen, wird eine gelbe Statusleiste angezeigt, die Sie darüber informiert, dass IntelliSense ein Update durchführen möchte.If you make changes to the file, a yellow status bar appears and informs you that IntelliSense will update. Sie haben die Möglichkeit, den Updatevorgang abzubrechen.It gives you a chance to cancel the update operation. Weitere Informationen zu CMakeLists.txt finden Sie in der CMake-Dokumentation.For information about CMakeLists.txt, see the CMake documentation.

Bearbeiten von CMakeLists.txt-DateienCMakeLists.txt file editing

Sobald Sie die Datei speichern, wird der Konfigurationsschritt automatisch erneut ausgeführt. Dieser zeigt Informationen im Ausgabefenster an.As soon as you save the file, the configuration step automatically runs again and displays information in the Output window. Fehler und Warnungen werden in der Fehlerliste oder im Ausgabefenster angezeigt.Errors and warnings are shown in the Error List or Output window. Doppelklicken Sie auf einen Fehler in der Fehlerliste, um zur problematischen Zeile in CMakeLists.txt zu navigieren.Double-click on an error in the Error List to navigate to the offending line in CMakeLists.txt.

CMakeLists.txt-DateifehlerCMakeLists.txt file errors

CMake-KonfigurationsschrittCMake configure step

Wenn Sie wichtige Änderungen an den Dateien CMakeSettings.json oder CMakeLists.txt vornehmen, führt Visual Studio den CMake-Konfigurationsschritt automatisch erneut aus.When you make significant changes to the CMakeSettings.json or to CMakeLists.txt files, Visual Studio automatically reruns the CMake configure step. Wenn der Konfigurationsschritt ohne Fehler abgeschlossen wird, sind die gesammelten Informationen in IntelliSense für C++ und den Sprachdiensten verfügbar.If the configure step finishes without errors, the information that's collected is available in C++ IntelliSense and language services. Er wird auch in Erstellungs- und Debugvorgängen verwendet.It's also used in build and debug operations.

Behandlung von CMake-CachefehlernTroubleshooting CMake cache errors

Wenn Sie weitere Informationen zum Status des CMake-Caches benötigen, um ein Problem zu diagnostizieren, öffnen Sie das Hauptmenü Projekt oder das Kontextmenü CMakeLists.txt im Projektmappen-Explorer, um einen der folgenden Befehle auszuführen:If you need more information about the state of the CMake cache to diagnose a problem, open the Project main menu or the CMakeLists.txt context menu in Solution Explorer to run one of these commands:

  • Cache anzeigen öffnet die Datei CMakeCache.txt aus dem Stammordner des Builds im Editor.View Cache opens the CMakeCache.txt file from the build root folder in the editor. (Alle Änderungen, die Sie hier an CMakeCache.txt vornehmen, werden verworfen, wenn Sie den Cache bereinigen.(Any edits you make here to CMakeCache.txt are wiped out if you clean the cache. Informationen zum Vornehmen von Änderungen, die nach dem Bereinigen des Caches beibehalten werden, finden Sie unter Anpassen von CMake-Einstellungen.)To make changes that persist after the cache is cleaned, see Customize CMake settings.)

  • Cacheordner öffnen öffnet ein Explorer-Fenster zum Stammordner des Builds.Open Cache Folder opens an Explorer window to the build root folder.

  • Cache bereinigen löscht den Stammordner des Builds, sodass der nächste CMake-Konfigurationsschritt mit einem leeren Cache beginnt.Clean Cache deletes the build root folder so that the next CMake configure step starts from a clean cache.

  • Cache generieren erzwingt die Ausführung des Schritts „Generieren“, auch wenn Visual Studio die Umgebung für aktuell hält.Generate Cache forces the generate step to run even if Visual Studio considers the environment up to date.

Die automatische Cachegenerierung kann im Dialogfeld Extras > Optionen > CMake > Allgemein deaktiviert werden.Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Ausführen von CMake über die BefehlszeileRun CMake from the command line

Wenn Sie CMake über den Visual Studio-Installer installiert haben, können Sie CMake über die Befehlszeile ausführen, indem Sie die folgenden Schritte ausführen:If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Führen Sie die entsprechende Datei „vsdevcmd.bat“ (x86/x64) aus.Run the appropriate vsdevcmd.bat (x86/x64). Weitere Informationen finden Sie unter Erstellen über die Befehlszeile.For more information, see Building on the Command Line.

  2. Wechseln Sie zu Ihrem Ausgabeordner.Switch to your output folder.

  3. Führen Sie CMake zum Erstellen/Konfigurieren Ihrer App aus.Run CMake to build/configure your app.

Visual Studio 2017 bietet umfangreiche Unterstützung für CMake einschließlich plattformübergreifender CMake-Projekte.Visual Studio 2017 has rich support for CMake, including cross-platform CMake projects. Die Komponente Visual C++-Tools für CMake verwendet die Funktion Ordner öffnen, um der IDE die Verwendung von CMake-Projektdateien (z. B. CMakeLists.txt) direkt für IntelliSense und das Durchsuchen zu ermöglichen.The Visual C++ Tools for CMake component uses the Open Folder feature to enable the IDE to consume CMake project files (such as CMakeLists.txt) directly for the purposes of IntelliSense and browsing. Es werden sowohl Ninja- als auch Visual Studio-Generatoren unterstützt.Both Ninja and Visual Studio generators are supported. Wenn Sie einen Visual Studio-Generator verwenden, generiert dieser eine temporäre Projektdatei und übergibt sie an „msbuild.exe“.If you use a Visual Studio generator, it generates a temporary project file and passes it to msbuild.exe. Das Projekt wird jedoch nie für IntelliSense oder zum Durchsuchen geladen.However, the project is never loaded for IntelliSense or browsing purposes. Sie können auch einen vorhandenen CMake-Cache verwenden.You also can import an existing CMake cache.

InstallationInstallation

Die Komponente Visual C++-Tools für CMake wird standardmäßig als Teil der Workloads Desktopentwicklung mit C++ und Linux Entwicklung mit C++ installiert.Visual C++ Tools for CMake is installed as part of the Desktop development with C++ and Linux Development with C++ workloads.

CMake-Komponente in der Workload „Desktopentwicklung mit C++“

Weitere Informationen finden Sie unter Install the C++ Linux workload in Visual Studio (Installieren der C++-Workload unter Linux in Visual Studio).For more information, see Install the C++ Linux workload in Visual Studio.

IDE-IntegrationIDE integration

Wenn Sie auf Datei > Öffnen > Ordner klicken, um einen Ordner zu öffnen, der eine CMakeLists.txt-Datei enthält, geschieht Folgendes:When you choose File > Open > Folder to open a folder containing a CMakeLists.txt file, the following things happen:

  • Visual Studio fügt ein CMake-Menüelement zum Hauptmenü hinzu, das Befehle für das Anzeigen und Bearbeiten von CMake-Skripts enthält.Visual Studio adds a CMake menu item to the main menu, with commands for viewing and editing CMake scripts.

  • Der Projektmappen-Explorer zeigt die Ordnerstruktur und die Dateien an.Solution Explorer displays the folder structure and files.

  • Visual Studio führt „CMake.exe“ aus und generiert optional den CMake-Cache für die Standardkonfiguration (x86 Debug).Visual Studio runs CMake.exe and optionally generates the CMake cache for the default configuration, which is x86 Debug. Die CMake-Befehlszeile wird im Ausgabefenster zusammen mit zusätzlichen Ausgaben von CMake angezeigt.The CMake command line is displayed in the Output Window, along with additional output from CMake.

  • Im Hintergrund beginnt Visual Studio damit, die Quelldateien zu indizieren, um IntelliSense, das Durchsuchen von Informationen, das Refactoring und vieles mehr zu ermöglichen.In the background, Visual Studio starts to index the source files to enable IntelliSense, browsing information, refactoring, and so on. Während Sie arbeiten, überwacht Visual Studio die Änderungen im Editor und auf dem Datenträger, damit der Index mit den Quellen synchron ist.As you work, Visual Studio monitors changes in the editor and also on disk to keep its index in sync with the sources.

Sie können Ordner öffnen, die eine beliebige Anzahl von CMake-Projekten enthalten.You can open folders containing any number of CMake projects. Visual Studio erkennt und konfiguriert alle CMakeLists.txt-Stammdateien in Ihrem Arbeitsbereich.Visual Studio detects and configures all the "root" CMakeLists.txt files in your workspace. CMake-Vorgänge (Konfigurieren, Erstellen, Debuggen), IntelliSense für C++ und das Durchsuchen sind für alle CMake-Projekte in Ihrem Arbeitsbereich verfügbar.CMake operations (configure, build, debug), C++ IntelliSense, and browsing are available to all CMake projects in your workspace.

CMake-Projekte mit mehreren Stammdateien

Sie können die Projekte auch logisch strukturiert nach Zielen anzeigen.You can also view your projects organized logically by targets. Wählen Sie in der Dropdownliste der Symbolleiste des Projektmappen-Explorers die Option Zielansicht aus:Choose Targets view from the dropdown in the Solution Explorer toolbar:

Schaltfläche für CMake-Zielansicht

Visual Studio verwendet die Datei CMakeSettings.json zum Speichern von Umgebungsvariablen oder Befehlszeilenoptionen für „CMake.exe“.Visual Studio uses a file called CMakeSettings.json to store environment variables or command-line options for Cmake.exe. CMakeSettings.json ermöglicht außerdem das Definieren und Speichern mehrerer CMake-Buildkonfigurationen.CMakeSettings.json also enables you to define and store multiple CMake build configurations. Sie können in der IDE bequem zwischen ihnen wechseln.You can conveniently switch between them in the IDE.

Verwenden Sie CMakeLists.txt andernfalls einfach wie in jedem anderen CMake-Projekt zum Angeben von Quelldateien, Suchen von Bibliotheken, Festlegen von Compiler- und Linkeroptionen sowie zum Angeben anderer Informationen zum Buildsystem.Otherwise, use the CMakeLists.txt just as you would in any CMake project to specify source files, find libraries, set compiler and linker options, and specify other build system-related information.

Wenn Sie beim Debuggen Argumente an eine ausführbare Datei übergeben müssen, können Sie eine andere Datei namens launch.vs.json verwenden.If you need to pass arguments to an executable at debug time, you can use another file called launch.vs.json. In einigen Szenarios werden diese Dateien von Visual Studio automatisch generiert.In some scenarios, Visual Studio automatically generates these files. Sie können sie manuell bearbeiten oder sogar die Datei selbst erstellen.You can edit them manually, or even create the file yourself.

Hinweis

Für andere Arten von „Ordner öffnen“-Projekten werden zwei zusätzliche JSON-Dateien verwendet: CppProperties.json und tasks.vs.json.For other kinds of Open Folder projects, two additional JSON files are used: CppProperties.json and tasks.vs.json. Diese sind für CMake-Projekte jedoch nicht relevant.Neither of these are relevant for CMake projects.

Importieren eines vorhandenen CachesImport an existing cache

Wenn Sie eine vorhandene CMakeLists.txt-Datei importieren, extrahiert Visual Studio benutzerdefinierte Variablen automatisch und erstellt eine vorab mit Daten aufgefüllte CMakeSettings.json-Datei, die auf diesen basiert.When you import an existing CMakeCache.txt file, Visual Studio automatically extracts customized variables and creates a pre-populated CMakeSettings.json file based on them. Der ursprüngliche Cache wird in keiner Weise geändert.The original cache isn't modified in any way. Er kann weiterhin über die Befehlszeile oder mit einem beliebigen Tool oder der IDE verwendet werden, die zum Generieren verwendet werden.It can still be used from the command line, or with whatever tool or IDE used to generate it. Die neue CMakeSettings.json-Datei wird zusammen mit der CMakeLists.txt-Stammdatei des Projekts abgelegt.The new CMakeSettings.json file is placed alongside the project's root CMakeLists.txt. Visual Studio generiert einen neuen Cache, der auf der Einstellungsdatei basiert.Visual Studio generates a new cache based the settings file. Sie können die automatische Cachegenerierung im Dialogfeld Extras > Optionen > CMake > Allgemein außer Kraft setzen.You can override automatic cache generation in the Tools > Options > CMake > General dialog.

Nicht der gesamte Inhalt des Caches wird importiert.Not everything in the cache is imported. Eigenschaften wie der Generator und der Speicherort des Compilers werden durch die Standardwerte ersetzt, die in der IDE bekanntermaßen funktionieren.Properties such as the generator and the location of the compilers are replaced with defaults that are known to work well with the IDE.

Importieren eines vorhandenen CachesTo import an existing cache

  1. Klicken Sie im Hauptmenü auf Datei > Öffnen > CMake:From the main menu, choose File > Open > CMake:

    CMake öffnenOpen CMake

    Mit diesem Befehl wird der Assistent CMake-Projekt aus Cache importieren gestartet.This command brings up the Import CMake from Cache wizard.

  2. Navigieren Sie zur CMakeCache.txt-Datei, die Sie importieren möchten, und klicken Sie dann auf OK.Navigate to the CMakeCache.txt file that you want to import, and then click OK. Der Assistent CMake-Projekt aus Cache importieren wird angezeigt:The Import CMake Project from Cache wizard appears:

    Importieren eines CMake-CachesImport a CMake cache

    Wenn der Assistent abgeschlossen ist, wird die neue Datei CMakeCache.txt im Projektmappen-Explorer neben der Stammdatei CMakeLists.txt in Ihrem Projekt geöffnet.When the wizard completes, you can see the new CMakeCache.txt file in Solution Explorer next to the root CMakeLists.txt file in your project.

Erstellen von CMake-ProjektenBuilding CMake projects

Folgende Optionen stehen Ihnen zum Erstellen eines CMake-Projekts zur Verfügung:To build a CMake project, you have these choices:

  1. Suchen Sie auf der Symbolleiste „Allgemein“ nach dem Dropdownmenü Konfigurationen.In the General toolbar, find the Configurations dropdown. Es wird wahrscheinlich standardmäßig „Linux-Debug“ oder „x64-Debug“ angezeigt.It's probably showing "Linux-Debug" or "x64-Debug" by default. Klicken Sie auf die bevorzugte Konfiguration, und drücken Sie F5 oder auf der Symbolleiste auf die Schaltfläche Ausführen (grünes Dreieck).Select the preferred configuration and press F5, or click the Run (green triangle) button on the toolbar. Das Projekt wird genau wie eine Visual Studio-Projektmappe zunächst erstellt.The project automatically builds first, just like a Visual Studio solution.

  2. Klicken Sie mit der rechten Maustaste auf CMakeLists.txt und dann im Kontextmenü auf Erstellen.Right click on the CMakeLists.txt and select Build from the context menu. Wenn mehrere Ziele in Ihrer Ordnerstruktur vorhanden sind, können Sie auswählen, den Build für alle oder nur für ein bestimmtes Ziel durchzuführen.If you have multiple targets in your folder structure, you can choose to build all or only one specific target.

  3. Alternativ können Sie im Hauptmenü auf Erstellen > Projektmappe erstellen klicken (F7 oder STRG+UMSCHALT+B).From the main menu, select Build > Build Solution (F7 or Ctrl+Shift+B). Stellen Sie sicher, dass ein CMake-Ziel bereits in der Dropdownliste Startelement auf der Symbolleiste Allgemein ausgewählt ist.Make sure that a CMake target is already selected in the Startup Item dropdown in the General toolbar.

CMake-Menübefehl „Erstellen“CMake build menu command

Sie können Buildkonfigurationen, Umgebungsvariablen, Befehlszeilenargumente und andere Einstellungen in der CMakeSettings.json-Datei anpassen.You can customize build configurations, environment variables, command-line arguments, and other settings in the CMakeSettings.json file. Sie können Änderungen vornehmen, ohne die Datei CMakeLists.txt zu ändern.It lets you make changes without modifying the CMakeLists.txt file. Weitere Informationen finden Sie unter Customize CMake settings (Anpassen von CMake-Einstellungen).For more information, see Customize CMake settings.

Erwartungsgemäß werden die Buildergebnisse im Ausgabefenster und in der Fehlerliste angezeigt.As you would expect, build results are shown in the Output Window and Error List.

CMake-BuildfehlerCMake build errors

In einem Ordner mit mehreren Buildzielen können Sie angeben, welches CMake-Ziel erstellt werden soll: Klicken Sie im CMake-Menü auf das Element Erstellen oder das Kontextmenü CMakeLists.txt, um das Ziel anzugeben.In a folder with multiple build targets, you can specify which CMake target to build: Choose the Build item on the CMake menu or the CMakeLists.txt context menu to specify the target. Wenn Sie in einem CMake-Projekt STRG+UMSCHALT+B drücken, wird das derzeit aktive Dokument erstellt.If you enter Ctrl+Shift+B in a CMake project, it builds the current active document.

Debuggen von CMake-ProjektenDebugging CMake projects

Wenn Sie ein CMake-Projekt debuggen möchten, wählen Sie die gewünschte Konfiguration aus, und drücken Sie F5.To debug a CMake project, choose the preferred configuration and press F5. Alternativ können Sie auf die Schaltfläche Ausführen auf der Symbolleiste klicken.Or, press the Run button in the toolbar. Wenn die Schaltfläche Ausführen „Startelement auswählen“ anzeigt, klicken Sie auf den Dropdownpfeil, und wählen Sie das Ziel aus, das ausgeführt werden soll.If the Run button says "Select Startup Item", select the dropdown arrow and choose the target that you want to run. (In einem CMake-Projekt ist die Option „Aktuelles Dokument“ nur für CPP-Dateien gültig.)(In a CMake project, the "Current document" option is only valid for .cpp files.)

CMake-Schaltfläche „Ausführen“CMake run button

Durch Ausführen oder F5 wird das Projekt zunächst erstellt, wenn seit dem vorherigen Build Änderungen vorgenommen wurden.The Run or F5 commands first build the project if changes have been made since the previous build.

Sie können eine CMake-Debugsitzung durch das Festlegen von Eigenschaften in der Datei launch.vs.json anpassen.You can customize a CMake debugging session by setting properties in the launch.vs.json file. Weitere Informationen finden Sie unter Configure CMake debugging sessions (Konfigurieren von CMake-Debugsitzungen).For more information, see Configure CMake debugging sessions.

Bearbeiten von CMakeLists.txt-DateienEditing CMakeLists.txt files

Wenn Sie eine CMakeLists.txt-Datei bearbeiten möchten, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei und danach auf Öffnen.To edit a CMakeLists.txt file, right-click on the file in Solution Explorer and choose Open. Wenn Sie Änderungen an der Datei vornehmen, wird eine gelbe Statusleiste angezeigt, die Sie darüber informiert, dass IntelliSense ein Update durchführen möchte.If you make changes to the file, a yellow status bar appears and informs you that IntelliSense will update. Sie haben die Möglichkeit, den Updatevorgang abzubrechen.It gives you a chance to cancel the update operation. Weitere Informationen zu CMakeLists.txt finden Sie in der CMake-Dokumentation.For information about CMakeLists.txt, see the CMake documentation.

Bearbeiten von CMakeLists.txt-DateienCMakeLists.txt file editing

Sobald Sie die Datei speichern, wird der Konfigurationsschritt automatisch erneut ausgeführt. Dieser zeigt Informationen im Ausgabefenster an.As soon as you save the file, the configuration step automatically runs again and displays information in the Output window. Fehler und Warnungen werden in der Fehlerliste oder im Ausgabefenster angezeigt.Errors and warnings are shown in the Error List or Output window. Doppelklicken Sie auf einen Fehler in der Fehlerliste, um zur problematischen Zeile in CMakeLists.txt zu navigieren.Double-click on an error in the Error List to navigate to the offending line in CMakeLists.txt.

CMakeLists.txt-DateifehlerCMakeLists.txt file errors

CMake-KonfigurationsschrittCMake configure step

Wenn wichtige Änderungen an den Dateien CMakeSettings.json oder CMakeLists.txt vorgenommen werden, führt Visual Studio den CMake-Konfigurationsschritt automatisch erneut aus.When significant changes are made to the CMakeSettings.json or to CMakeLists.txt files, Visual Studio automatically reruns the CMake configure step. Wenn der Konfigurationsschritt ohne Fehler abgeschlossen wird, sind die gesammelten Informationen in IntelliSense für C++ und den Sprachdiensten verfügbar.If the configure step finishes without errors, the information that's collected is available in C++ IntelliSense and language services. Er wird auch in Erstellungs- und Debugvorgängen verwendet.It's also used in build and debug operations.

Mehrere CMake-Projekte verwenden möglicherweise denselben CMake-Konfigurationsnamen (z. B. „x86-Debug“).Multiple CMake projects may use the same CMake configuration name (for example, x86-Debug). Wenn diese Konfiguration ausgewählt ist, werden diese (in ihrem eigenen Buildstammordner) konfiguriert und erstellt.All of them are configured and built (in their own build root folder) when that configuration is selected. Sie können die Ziele aller CMake-Projekte debuggen, die in dieser CMake-Konfiguration enthalten sind.You can debug the targets from all of the CMake projects that participate in that CMake configuration.

CMake-Menüelement „Nur erstellen“CMake Build Only menu item

Sie können Build- und Debugsitzungen auf eine Teilmenge der Projekte im Arbeitsbereich beschränken.You can limit builds and debug sessions to a subset of the projects in the workspace. Erstellen Sie eine neue Konfiguration mit einem eindeutigen Namen in der Datei CMakeSettings.json.Create a new configuration with a unique name in the CMakeSettings.json file. Wenden Sie die Konfiguration dann nur auf diese Projekte an.Then, apply the configuration to those projects only. Wenn diese Konfiguration ausgewählt ist, werden IntelliSense und die Build- und Debugbefehle nur für die angegebenen Projekte angewendet.When that configuration is selected, IntelliSense and the build and debug commands only apply to those specified projects.

Behandlung von CMake-CachefehlernTroubleshooting CMake cache errors

Wenn Sie weitere Informationen zum Status des CMake-Caches benötigen, um ein Problem zu diagnostizieren, öffnen Sie das Hauptmenü CMake oder das Kontextmenü CMakeLists.txt im Projektmappen-Explorer, um einen der folgenden Befehle auszuführen:If you need more information about the state of the CMake cache to diagnose a problem, open the CMake main menu or the CMakeLists.txt context menu in Solution Explorer to run one of these commands:

  • Cache anzeigen öffnet die Datei CMakeCache.txt aus dem Stammordner des Builds im Editor.View Cache opens the CMakeCache.txt file from the build root folder in the editor. (Alle Änderungen, die Sie hier an CMakeCache.txt vornehmen, werden verworfen, wenn Sie den Cache bereinigen.(Any edits you make here to CMakeCache.txt are wiped out if you clean the cache. Informationen zum Vornehmen von Änderungen, die nach dem Bereinigen des Caches beibehalten werden, finden Sie unter Anpassen von CMake-Einstellungen.)To make changes that persist after the cache is cleaned, see Customize CMake settings.)

  • Cacheordner öffnen öffnet ein Explorer-Fenster zum Stammordner des Builds.Open Cache Folder opens an Explorer window to the build root folder.

  • Cache bereinigen löscht den Stammordner des Builds, sodass der nächste CMake-Konfigurationsschritt mit einem leeren Cache beginnt.Clean Cache deletes the build root folder so that the next CMake configure step starts from a clean cache.

  • Cache generieren erzwingt die Ausführung des Schritts „Generieren“, auch wenn Visual Studio die Umgebung für aktuell hält.Generate Cache forces the generate step to run even if Visual Studio considers the environment up to date.

Die automatische Cachegenerierung kann im Dialogfeld Extras > Optionen > CMake > Allgemein deaktiviert werden.Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Kompilierung einzelner DateienSingle file compilation

Klicken Sie zum Erstellen einer einzelnen Datei in einem CMake-Projekt im Projektmappen-Explorer mit der rechten Maustaste auf die Datei.To build a single file in a CMake project, right-click on the file in Solution Explorer. Klicken Sie im Popupmenü auf Kompilieren.Choose Compile from the pop-up menu. Sie können die derzeit im Editor geöffnete Datei auch über das CMake-Hauptmenü erstellen:You can also build the currently open file in the editor by using the main CMake menu:

Kompilierung einzelner Dateien in CMake

Ausführen von CMake über die BefehlszeileRun CMake from the command line

Wenn Sie CMake über den Visual Studio-Installer installiert haben, können Sie CMake über die Befehlszeile ausführen, indem Sie die folgenden Schritte ausführen:If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Führen Sie die entsprechende Datei „vsdevcmd.bat“ (x86/x64) aus.Run the appropriate vsdevcmd.bat (x86/x64). Weitere Informationen finden Sie unter Erstellen über die Befehlszeile.For more information, see Building on the command line .

  2. Wechseln Sie zu Ihrem Ausgabeordner.Switch to your output folder.

  3. Führen Sie CMake zum Erstellen/Konfigurieren Ihrer App aus.Run CMake to build/configure your app.

In Visual Studio 2015 können Visual Studio-Benutzer einen CMake-Generator verwenden, um MSBuild-Projektdateien zu generieren, die anschließend von der IDE für IntelliSense sowie für das Durchsuchen und die Kompilierung verwendet werden.In Visual Studio 2015, Visual Studio users can use a CMake generator to generate MSBuild project files, which the IDE then consumes for IntelliSense, browsing, and compilation.

Siehe auchSee also

Tutorial: Erstellen plattformübergreifender C++-Projekte in Visual StudioTutorial: Create C++ cross-platform projects in Visual Studio
Konfigurieren eines Linux CMake-ProjektsConfigure a Linux CMake project
Herstellen einer Verbindung mit Ihrem Linux-RemotecomputerConnect to your remote Linux computer
Anpassen von CMake-BuildeinstellungenCustomize CMake build settings
CMakeSettings.json-SchemareferenzCMakeSettings.json schema reference
Konfigurieren von CMake-DebugsitzungenConfigure CMake debugging sessions
Bereitstellen, Ausführen und Debuggen Ihres Linux-ProjektsDeploy, run, and debug your Linux project
CMake predefined configuration reference (Referenz für vordefinierte CMake-Konfigurationen)CMake predefined configuration reference