Menü Schließen

CMake-Projekte in Visual Studio

Die C++ CMake-Tools für Windows-Komponente verwendet die Funktion „Ordner öffnen“, um CMake-Projektdateien (z. B. CMakeLists.txt) direkt für die Zwecke von IntelliSense und Browsing zu verwenden. Es werden sowohl Ninja als auch Visual Studio Generatoren unterstützt. Wenn Sie einen Visual Studio-Generator verwenden, erzeugt dieser eine temporäre Projektdatei und übergibt sie an msbuild.exe. Das Projekt wird jedoch nie für IntelliSense- oder Browsing-Zwecke geladen. Sie können auch einen vorhandenen CMake-Cache importieren.

Installation

Die CMake-Tools für Windows werden als Teil der Workloads Desktop-Entwicklung mit C++ und Linux-Entwicklung mit C++ installiert. Weitere Informationen finden Sie unter Plattformübergreifende CMake-Projekte.

Weitere Informationen finden Sie unter Installieren des C++-Linux-Workloads in Visual Studio.

IDE-Integration

Wenn Sie File > Open > Folder wählen, um einen Ordner zu öffnen, der eine CMakeLists.txt-Datei enthält, geschieht Folgendes:

  • Visual Studio fügt CMake-Elemente zum Projektmenü hinzu, mit Befehlen zum Anzeigen und Bearbeiten von CMake-Skripten.

  • Der Solution Explorer zeigt die Ordnerstruktur und die Dateien an.

  • Visual Studio führt cmake.exe aus und erzeugt die CMake-Cache-Datei (CMakeCache.txt) für die Standardkonfiguration (x64 Debug). Die CMake-Befehlszeile wird im Ausgabefenster angezeigt, zusammen mit zusätzlichen Ausgaben von CMake.

  • Im Hintergrund beginnt Visual Studio mit der Indizierung der Quelldateien, um IntelliSense, Browsing-Informationen, Refactoring usw. zu aktivieren. Während Sie arbeiten, überwacht Visual Studio Änderungen im Editor und auf der Festplatte, um den Index mit den Quellen synchron zu halten.

Sie können Ordner öffnen, die eine beliebige Anzahl von CMake-Projekten enthalten. Visual Studio erkennt und konfiguriert alle „Root“-Dateien CMakeLists.txt in Ihrem Arbeitsbereich. CMake-Operationen (configure, build, debug), C++ IntelliSense und Browsing sind für alle CMake-Projekte in Ihrem Arbeitsbereich verfügbar.

Sie können Ihre Projekte auch logisch nach Zielen geordnet anzeigen. Wählen Sie die Ansicht Ziele aus dem Dropdown-Menü in der Symbolleiste des Projektmappen-Explorers:

Klicken Sie auf die Schaltfläche Alle Dateien anzeigen oben im Projektmappen-Explorer, um alle von CMake erzeugten Ausgaben in den Ordnern out/build/<config> zu sehen.

Visual Studio verwendet eine Konfigurationsdatei namens CMakeSettings.json. Mit dieser Datei können Sie mehrere Build-Konfigurationen definieren und speichern und in der IDE bequem zwischen ihnen wechseln. Eine Konfiguration ist ein Visual Studio-Konstrukt, das Einstellungen kapselt, die für einen bestimmten Build-Typ spezifisch sind. Die Einstellungen werden verwendet, um die Standard-Kommandozeilenoptionen zu konfigurieren, die Visual Studio an cmake.exe weitergibt. Sie können hier auch zusätzliche CMake-Optionen angeben und beliebige zusätzliche Variablen definieren. Alle Optionen werden entweder als interne oder externe Variablen in den CMake-Cache geschrieben. In Visual Studio 2019 bietet der CMake-Einstellungseditor eine bequeme Möglichkeit, Ihre Einstellungen zu bearbeiten. Weitere Informationen finden Sie unter Anpassen der CMake-Einstellungen.

Eine Einstellung, intelliSenseMode, wird nicht an CMake übergeben, sondern nur von Visual Studio verwendet.

Verwenden Sie die Datei CMakeLists.txt in jedem Projektordner, wie Sie es in jedem CMake-Projekt tun würden. Sie können Quelldateien angeben, Bibliotheken finden, Compiler- und Linker-Optionen setzen und andere Build-System-bezogene Informationen angeben.

Um Argumente an eine ausführbare Datei zur Debug-Zeit zu übergeben, können Sie eine andere Datei namens launch.vs.json verwenden. In einigen Szenarien generiert Visual Studio diese Dateien automatisch. Sie können sie manuell bearbeiten oder die Datei sogar selbst erstellen.

Hinweis

Für andere Arten von Open Folder Projekten werden zwei zusätzliche JSON-Dateien verwendet: CppProperties.json und tasks.vs.json. Beide sind für CMake-Projekte nicht relevant.

Einen bestehenden Cache öffnen

Wenn Sie eine bestehende CMake-Cache-Datei (CMakeCache.txt) öffnen, versucht Visual Studio nicht, Ihren Cache und Build-Tree für Sie zu verwalten. Ihre benutzerdefinierten oder bevorzugten Tools haben die vollständige Kontrolle darüber, wie CMake Ihr Projekt konfiguriert. Um einen bestehenden Cache in Visual Studio zu öffnen, wählen Sie File > Open > CMake. Navigieren Sie dann zu einer bestehenden CMakeCache.txt-Datei.

Sie können einen bestehenden CMake-Cache zu einem offenen Projekt hinzufügen. Dies geschieht auf die gleiche Weise, wie Sie eine neue Konfiguration hinzufügen würden. Weitere Informationen finden Sie in unserem Blogbeitrag zum Öffnen eines bestehenden Caches in Visual Studio.

Erstellen von CMake-Projekten

Um ein CMake-Projekt zu erstellen, haben Sie folgende Möglichkeiten:

  1. In der Symbolleiste Allgemein finden Sie das Dropdown-Menü Konfigurationen. Wahrscheinlich steht dort standardmäßig „x64-Debug“. Wählen Sie die gewünschte Konfiguration aus und drücken Sie F5, oder klicken Sie auf die Schaltfläche Ausführen (grünes Dreieck) in der Symbolleiste. Das Projekt wird automatisch zuerst gebaut, genau wie eine Visual Studio Lösung.

  2. Klicken Sie mit der rechten Maustaste auf CMakeLists.txt und wählen Sie Build aus dem Kontextmenü. Wenn Sie mehrere Ziele in Ihrer Ordnerstruktur haben, können Sie wählen, ob Sie alle oder nur ein bestimmtes Ziel bauen wollen.

  3. Wählen Sie im Hauptmenü Build > Build All (F7 oder Strg+Shift+B). Vergewissern Sie sich, dass ein CMake-Ziel bereits im Dropdown-Menü Startobjekt in der Symbolleiste Allgemein ausgewählt ist.

Wie zu erwarten, werden die Build-Ergebnisse im Ausgabefenster und in der Fehlerliste angezeigt.

In einem Ordner mit mehreren Build-Zielen können Sie angeben, welches CMake-Ziel gebaut werden soll: Wählen Sie den Eintrag Build im CMake-Menü oder das Kontextmenü CMakeLists.txt, um das Ziel anzugeben. Wenn Sie Strg+Umschalt+B in einem CMake-Projekt eingeben, wird das aktuell aktive Dokument gebaut.

CMake-Projekte debuggen

Um ein CMake-Projekt zu debuggen, wählen Sie die bevorzugte Konfiguration und drücken Sie F5 oder drücken Sie die Schaltfläche Ausführen in der Symbolleiste. Wenn auf der Schaltfläche „Ausführen“ die Option „Startobjekt auswählen“ angezeigt wird, wählen Sie den Dropdown-Pfeil. Wählen Sie das Ziel, das Sie ausführen möchten. (In einem CMake-Projekt ist die Option „Aktuelles Dokument“ nur für .cpp-Dateien gültig.)

Die Befehle Ausführen oder F5 bauen das Projekt zuerst, wenn seit dem letzten Build Änderungen vorgenommen wurden. Änderungen an CMakeSettings.json führen dazu, dass der CMake-Cache neu generiert wird.

Sie können eine CMake-Debugging-Sitzung anpassen, indem Sie Eigenschaften in der Datei launch.vs.json festlegen. Weitere Informationen finden Sie unter Konfigurieren von CMake-Debugging-Sitzungen.

Just My Code für CMake-Projekte

Wenn Sie für Windows mit dem MSVC-Compiler bauen, haben CMake-Projekte Unterstützung für Just My Code-Debugging. Um die Just My Code Einstellung zu ändern, gehen Sie zu Tools > Options > Debugging > General.

Vcpkg Integration

Wenn Sie vcpkg installiert haben, integrieren CMake Projekte, die in Visual Studio geöffnet werden, automatisch die vcpkg Toolchain Datei. Das bedeutet, dass keine zusätzliche Konfiguration erforderlich ist, um vcpkg mit Ihren CMake-Projekten zu verwenden. Diese Unterstützung gilt sowohl für lokale vcpkg-Installationen als auch für vcpkg-Installationen auf entfernten Systemen, auf die Sie zugreifen. Dieses Verhalten wird automatisch deaktiviert, wenn Sie eine andere Toolchain in Ihrer CMake Settings Konfiguration angeben.

Konfigurationsfeedback anpassen

Standardmäßig werden die meisten Konfigurationsmeldungen unterdrückt, es sei denn, es liegt ein Fehler vor. Sie können alle Meldungen sehen, indem Sie diese Funktion in Extras > Optionen > CMake aktivieren.

Bearbeiten von CMakeLists.txt Dateien

Um eine CMakeLists.txt Datei zu bearbeiten, klicken Sie mit der rechten Maustaste auf die Datei im Projektmappen-Explorer und wählen Sie Öffnen. Wenn Sie Änderungen an der Datei vornehmen, erscheint eine gelbe Statusleiste, die Sie darüber informiert, dass IntelliSense aktualisiert wird. Sie haben dann die Möglichkeit, den Aktualisierungsvorgang abzubrechen. Informationen über CMakeLists.txt finden Sie in der CMake-Dokumentation.

Sobald Sie die Datei gespeichert haben, wird der Konfigurationsschritt automatisch erneut ausgeführt und Informationen im Ausgabefenster angezeigt. Fehler und Warnungen werden in der Fehlerliste oder im Ausgabefenster angezeigt. Doppelklicken Sie auf einen Fehler in der Fehlerliste, um zu der entsprechenden Zeile in CMakeLists.txt zu navigieren.

CMake-Konfigurationsschritt

Wenn Sie signifikante Änderungen an den Dateien CMakeSettings.json oder CMakeLists.txt vornehmen, führt Visual Studio den CMake-Konfigurationsschritt automatisch erneut aus. Wenn der configure-Schritt ohne Fehler abgeschlossen wird, sind die gesammelten Informationen in C++ IntelliSense und Sprachdiensten verfügbar. Sie werden auch bei Build- und Debug-Vorgängen verwendet.

Fehlersuche bei CMake-Cache-Fehlern

Wenn Sie mehr Informationen über den Zustand des CMake-Caches benötigen, um ein Problem zu diagnostizieren, öffnen Sie das Projekt-Hauptmenü oder das CMakeLists.txt-Kontextmenü im Projektmappen-Explorer, um einen der folgenden Befehle auszuführen:

  • Cache anzeigen öffnet die CMakeCache.txt-Datei aus dem Build-Stammverzeichnis im Editor. (Alle Änderungen, die Sie hier an CMakeCache.txt vornehmen, werden gelöscht, wenn Sie den Cache leeren. Um Änderungen vorzunehmen, die nach dem Bereinigen des Caches bestehen bleiben, siehe CMake-Einstellungen anpassen.

  • Cache-Ordner öffnen öffnet ein Explorer-Fenster zum Build-Root-Ordner.

  • Cache bereinigen löscht den Build-Root-Ordner, so dass der nächste CMake-Konfigurationsschritt von einem sauberen Cache startet.

  • Cache generieren erzwingt die Ausführung des Generierungsschritts, auch wenn Visual Studio die Umgebung als aktuell betrachtet.

Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Run CMake from the command line

If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Run the appropriate vsdevcmd.bat (x86/x64). For more information, see Building on the Command Line.

  2. Switch to your output folder.

  3. Run CMake to build/configure your app.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.