Lernprogramm: Installieren und Verwenden von Paketen mit CMake in Visual Studio
In diesem Lernprogramm erfahren Sie, wie Sie ein C++-Programm "Hallo Welt" erstellen, das die fmt
Bibliothek mit CMake, vcpkg und Visual Studio verwendet. Sie installieren Abhängigkeiten, konfigurieren, erstellen und führen eine einfache Anwendung aus.
Voraussetzungen
- Visual Studio mit C++-Entwicklungsarbeitsauslastung und CMake-Komponente
- Git
1 – Einrichten von vcpkg
Klonen des Repositorys
Der erste Schritt besteht darin, das vcpkg-Repository von GitHub zu klonen. Das Repository enthält Skripts zum Abrufen der ausführbaren Datei vcpkg und eine Registrierung von kuratierten Open-Source-Bibliotheken Standard von der vcpkg-Community enthalten. Führen Sie dazu Folgendes aus:
git clone https://github.com/microsoft/vcpkg.git
Die kuratierte vcpkg-Registrierung ist eine Reihe von mehr als 2.000 Open-Source-Bibliotheken. Diese Bibliotheken wurden von den kontinuierlichen Integrationspipelines von vcpkg überprüft, um zusammenzuarbeiten. Während das vcpkg-Repository nicht den Quellcode für diese Bibliotheken enthält, enthält es Rezepte und Metadaten zum Erstellen und Installieren in Ihrem System.
Ausführen des Bootstrap-Skripts
Nachdem Sie das vcpkg-Repository geklont haben, navigieren Sie zum
vcpkg
Verzeichnis, und führen Sie das Bootstrap-Skript aus:cd vcpkg && bootstrap-vcpkg.bat
cd vcpkg; .\bootstrap-vcpkg.bat
cd vcpkg && ./bootstrap-vcpkg.sh
Das Bootstrap-Skript führt erforderliche Prüfungen durch und lädt die ausführbare Datei vcpkg herunter.
Das ist alles! vcpkg ist eingerichtet und einsatzbereit.
2 – Einrichten des Visual Studio-Projekts
Erstellen des Visual Studio-Projekts
- Erstellen eines neuen Projekts in Visual Studio mithilfe der Vorlage "CMake Project"
Screenshot der Visual Studio-Benutzeroberfläche zum Erstellen eines neuen CMake-Projekts in Visual Studio
- Benennen Sie Ihr Projekt "helloworld"
- Aktivieren Sie das Kontrollkästchen für "Projektmappe und Projekt im selben Verzeichnis platzieren".
- Klicken Sie auf die Schaltfläche "Erstellen".
Screenshot der Visual Studio-Benutzeroberfläche zum Benennen Ihres CMake-Projekts und Klicken auf die Schaltfläche "Erstellen".
Konfigurieren Sie die Umgebungsvariable
VCPKG_ROOT
.Öffnen Sie das integrierte PowerShell-Fenster für Entwickler in Visual Studio.
Screenshot der Visual Studio-Benutzeroberfläche für das integrierte PowerShell-Entwicklerfenster
Führen Sie die folgenden Befehle aus:
$env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
Screenshot der Visual Studio-Benutzeroberfläche für das integrierte PowerShell-Entwicklerfenster, in dem gezeigt wird, wie Sie VCPKG_ROOT einrichten und zu PATH hinzufügen können.
Hinweis
Das Festlegen von Umgebungsvariablen auf diese Weise wirkt sich nur auf die aktuelle Terminalsitzung aus. Um diese Änderungen in allen Sitzungen dauerhaft vorzunehmen, legen Sie sie über den Bereich "Windows System Environment Variables" fest.
Öffnen Sie die Eingabeaufforderung für Entwickler in Visual Studio.
Screenshot der Visual Studio-Benutzeroberfläche für die Entwickler-Eingabeaufforderung.
Führen Sie die folgenden Befehle aus:
set VCPKG_ROOT="C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Screenshot der Visual Studio-Eingabeaufforderung für Entwickler, die zeigt, wie sie VCPKG_ROOT einrichten und zu PATH hinzufügen.
Hinweis
Das Festlegen von Umgebungsvariablen auf diese Weise wirkt sich nur auf die aktuelle Terminalsitzung aus. Um diese Änderungen in allen Sitzungen dauerhaft vorzunehmen, legen Sie sie über den Bereich "Windows System Environment Variables" fest.
Die Einstellung
VCPKG_ROOT
hilft Visual Studio beim Auffinden Ihrer vcpkg-Instanz.PATH
Durch das Hinzufügen wird sichergestellt, dass Sie vcpkg-Befehle direkt über die Shell ausführen können.Generieren Sie eine Manifestdatei, und fügen Sie Abhängigkeiten hinzu.
Führen Sie den folgenden Befehl aus, um eine vcpkg-Manifestdatei (
vcpkg.json
) zu erstellen:vcpkg new --application
Der
vcpkg new
Befehl fügt einevcpkg.json
Datei und einevcpkg-configuration.json
Datei im Verzeichnis des Projekts hinzu.Fügen Sie das
fmt
Paket als Abhängigkeit hinzu:vcpkg add port fmt
Sie
vcpkg.json
sollten jetzt Folgendes enthalten:{ "dependencies": [ "fmt" ] }
Dies ist Ihre Manifestdatei. vcpkg liest die Manifestdatei, um zu erfahren, welche Abhängigkeiten installiert und in CMake integriert werden sollen, um die für Ihr Projekt erforderlichen Abhängigkeiten bereitzustellen.
Die generierte
vcpkg-configuration.json
Datei führt einen Basisplan ein, der Mindestversionseinschränkungen für die Abhängigkeiten des Projekts einschließt. Das Ändern dieser Datei liegt außerhalb des Umfangs dieses Lernprogramms. In diesem Lernprogramm ist es zwar nicht anwendbar, aber es empfiehlt sich, dievcpkg-configuration.json
Datei unter Quellcodeverwaltung zu halten, um die Versionskonsistenz in verschiedenen Entwicklungsumgebungen sicherzustellen.
3 – Einrichten der Projektdateien
Ändern Sie die Datei
helloworld.cpp
.Ersetzen Sie den Inhalt durch
helloworld.cpp
den folgenden Code:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
Diese Quelldatei enthält den
<fmt/core.h>
Header, der Teil derfmt
Bibliothek ist. Diemain()
Funktion ruftfmt::print()
auf, um die Meldung "Hallo Welt!" an die Konsole auszugeben.Konfigurieren Sie die
CMakePresets.json
Datei.- Benennen Sie die Datei
CMakePresets.json
inCMakeUserPresets.json
um. - Aktualisieren Sie den Inhalt wie unten dargestellt. Ersetzen Sie
<VCPKG_ROOT>
den Pfad zu Ihrem vcpkg-Verzeichnis.
{ "version": 2, "configurePresets": [ { "name": "default", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "<VCPKG_ROOT>/scripts/buildsystems/vcpkg.cmake" } } ] }
- Da diese Datei einen hartcodierten absoluten Pfad enthält, wird empfohlen, diese Datei nicht unter der Quellcodeverwaltung zu behalten. Wenn Sie Git verwenden, fügen Sie Ihrer
.gitignore
Datei hinzuCMakeUserPresets.json
.
Die
CMakeUserPresets.json
Datei enthält eine einzelne Voreinstellung namens "default", diese Voreinstellung legt die Verwendung derCMAKE_TOOLCHAIN_FILE
CMake-Toolchaindatei von vcpkg fest. Dadurch kann vcpkg Pakete für CMake bereitstellen, wenn Sie das Projekt konfigurieren und erstellen. Lesen Sie die vcpkg CMake-Integrationsdokumentation , um mehr zu erfahren.- Benennen Sie die Datei
Bearbeiten Sie die
CMakeLists.txt
-Datei.Ersetzen Sie den Inhalt der Datei
CMakeLists.txt
durch den folgenden Code:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld main.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)
Lassen Sie uns nun die Funktionsweise jeder Zeile in der
CMakeLists.txt
Datei aufschlüsseln:cmake_minimum_required(VERSION 3.10)
: Gibt an, dass die zum Erstellen des Projekts erforderliche Mindestversion von CMake 3.10 ist. Wenn die auf Ihrem System installierte CMake-Version niedriger ist als dies, schlägt der Build fehl.project(HelloWorld)
: Legt den Namen des Projekts auf "HelloWorld" fest.find_package(fmt CONFIG REQUIRED)
: Sucht anhand der CMake-Konfigurationsdatei nach derfmt
Bibliothek. DieREQUIRED
Schlüsselwort (keyword) stellt sicher, dass ein Fehler generiert wird, wenn das Paket nicht gefunden wird.add_executable(HelloWorld helloworld.cpp)
: Fügt ein ausführbares Ziel namens "HelloWorld" hinzu, das aus der Quelldateihelloworld.cpp
erstellt wurde.target_link_libraries(HelloWorld PRIVATE fmt::fmt)
: Gibt an, dass dieHelloWorld
ausführbare Datei mit derfmt
Bibliothek verknüpft werden soll. DiePRIVATE
Schlüsselwort (keyword) weist darauf hin, dassfmt
nur für das BauenHelloWorld
erforderlich ist und nicht an andere abhängige Projekte weitergegeben werden sollte.
4 – Erstellen und Ausführen des Projekts
Erstellen Sie das Projekt.
Drücken Sie
Ctrl+Shift+B
, um das Projekt in Visual Studio zu erstellen.Führen Sie die Anwendung aus.
Führen Sie schließlich die ausführbare Datei aus:
Screenshot der Visual Studio-Benutzeroberfläche zum Ausführen der ausführbaren Datei.
Die folgende Ausgabe sollte angezeigt werden:
Screenshot der Programmausgabe - "Hallo Welt!"
Nächste Schritte
Weitere vcpkg.json
Informationen finden Sie in unserer Referenzdokumentation:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für