Kurz: Instalace a používání balíčků pomocí CMake v sadě Visual Studio
V tomto kurzu se dozvíte, jak vytvořit program "Hello World" jazyka C++, který používá knihovnu fmt
s CMake, vcpkg a sadou Visual Studio. Nainstalujete závislosti, nakonfigurujete, sestavíte a spustíte jednoduchou aplikaci.
Požadavky
- Visual Studio s úlohou vývoje v jazyce C++ a komponentou CMake
- Git
1. Nastavení vcpkg
Klonování úložiště
Prvním krokem je klonování úložiště vcpkg z GitHubu. Úložiště obsahuje skripty pro získání spustitelného souboru vcpkg a registru kurátorovaných opensourcových knihoven spravovaných komunitou vcpkg. Provedete to spuštěním tohoto příkazu:
git clone https://github.com/microsoft/vcpkg.git
Kurátorovaný registr vcpkg je sada více než 2 000 opensourcových knihoven. Tyto knihovny ověřily kanály kontinuální integrace vcpkg, aby spolupracovaly. I když úložiště vcpkg neobsahuje zdrojový kód pro tyto knihovny, obsahuje recepty a metadata pro sestavení a instalaci v systému.
Spuštění skriptu bootstrap
Teď, když jste naklonovali úložiště vcpkg, přejděte do
vcpkg
adresáře a spusťte spouštěcí skript:cd vcpkg && bootstrap-vcpkg.bat
cd vcpkg; .\bootstrap-vcpkg.bat
cd vcpkg && ./bootstrap-vcpkg.sh
Skript bootstrap provádí kontroly požadovaných součástí a stáhne spustitelný soubor vcpkg.
A je to! Vcpkg je nastavena a připravena k použití.
2. Nastavení projektu sady Visual Studio
Vytvoření projektu sady Visual Studio
- Vytvoření nového projektu v sadě Visual Studio pomocí šablony "Projekt CMake"
Snímek obrazovky s uživatelským rozhraním sady Visual Studio pro zobrazení postupu vytvoření nového projektu CMake v sadě Visual Studio
- Pojmenujte projekt "helloworld"
- Zaškrtněte políčko Umístit řešení a projekt do stejného adresáře.
- Klikněte na tlačítko Vytvořit.
Snímek obrazovky uživatelského rozhraní sady Visual Studio pro pojmenování projektu CMake a kliknutí na tlačítko Vytvořit
Nakonfigurujte proměnnou
VCPKG_ROOT
prostředí.Poznámka:
Nastavení proměnných prostředí tímto způsobem ovlivní pouze aktuální relaci terminálu. Pokud chcete tyto změny provést trvale ve všech relacích, nastavte je na panelu Proměnných systému Windows.
Otevřete integrované okno Developer PowerShellu v sadě Visual Studio.
Snímek obrazovky s uživatelským rozhraním sady Visual Studio pro integrované okno pro vývojáře v PowerShellu
Spusťte následující příkazy:
$env:VCPKG_ROOT="C:\path\to\vcpkg" $env:PATH="$env:VCPKG_ROOT;$env:PATH"
Snímek obrazovky uživatelského rozhraní sady Visual Studio pro integrované okno pro vývojáře PowerShellu znázorňující, jak nastavit VCPKG_ROOT a přidat ho do path
Otevřete příkazový řádek Vývojář v sadě Visual Studio.
Snímek obrazovky uživatelského rozhraní sady Visual Studio pro příkazový řádek pro vývojáře
Spusťte následující příkazy:
set "VCPKG_ROOT=C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Snímek obrazovky s příkazovým řádkem pro vývojáře v sadě Visual Studio znázorňující, jak nastavit VCPKG_ROOT a přidat ho do path
Nastavení
VCPKG_ROOT
pomáhá sadě Visual Studio najít instanci vcpkg. Přidáním zajistíte, žePATH
můžete spouštět příkazy vcpkg přímo z prostředí.Vygenerujte soubor manifestu a přidejte závislosti.
Spuštěním následujícího příkazu vytvořte soubor manifestu vcpkg (
vcpkg.json
):vcpkg new --application
Příkaz
vcpkg new
přidávcpkg.json
soubor avcpkg-configuration.json
soubor do adresáře projektu.fmt
Přidejte balíček jako závislost:vcpkg add port fmt
Vaše teď
vcpkg.json
by měla obsahovat:{ "dependencies": [ "fmt" ] }
Toto je váš soubor manifestu. Vcpkg přečte soubor manifestu a zjistí, jaké závislosti se mají nainstalovat a integrovat s CMake, aby poskytoval závislosti vyžadované vaším projektem.
Vygenerovaný
vcpkg-configuration.json
soubor představuje směrný plán , který u závislostí projektu umístí omezení minimální verze. Úprava tohoto souboru je nad rámec tohoto kurzu. I když se v tomto kurzu nedá použít, je vhodné zachovatvcpkg-configuration.json
soubor pod správou zdrojového kódu, abyste zajistili konzistenci verzí v různých vývojových prostředích.
3. Nastavení souborů projektu
Upravte soubor
helloworld.cpp
.helloworld.cpp
Obsah nahraďte následujícím kódem:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
Tento zdrojový soubor obsahuje hlavičku
<fmt/core.h>
, která je součástífmt
knihovny. Funkcemain()
voláfmt::print()
výstup zprávy "Hello World!" do konzoly.Nakonfigurujte
CMakePresets.json
soubor.CMake může automaticky propojit knihovny nainstalované nástrojem vcpkg, pokud
CMAKE_TOOLCHAIN_FILE
je nastavená tak, aby používala vlastní sadu nástrojů vcpkg. To může být dokončeno pomocí přednastavení CMake soubory.Upravte
CMakePresets.json
tak, aby odpovídal následujícímu obsahu:{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }
Vytvořte
CMakeUserPresets.json
s následujícím obsahem:{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }
Soubor
CMakePresets.json
obsahuje jednu předvolbu s názvem "vcpkg", která nastaví proměnnouCMAKE_TOOLCHAIN_FILE
. SouborCMakeUserPresets.json
nastaví proměnnouVCPKG_ROOT
prostředí tak, aby odkazovat na absolutní cestu obsahující vaši místní instalaci vcpkg. Doporučuje se nekontrolovatCMakeUserPresets.json
systémy správy verzí.Úprava souboru
CMakeLists.txt
.Obsah souboru
CMakeLists.txt
nahraďte následujícím kódem:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)
Pojďme teď rozdělit jednotlivé řádky v
CMakeLists.txt
souboru:cmake_minimum_required(VERSION 3.10)
: Určuje, že minimální verze CMake potřebná k sestavení projektu je 3.10. Pokud je verze CMake nainstalovaná ve vašem systému nižší, sestavení se nezdaří.project(HelloWorld)
: Nastaví název projektu na "HelloWorld".find_package(fmt CONFIG REQUIRED)
: Vyhledá knihovnu pomocí konfiguračníhofmt
souboru CMake. KlíčovéREQUIRED
slovo zajistí, že se vygeneruje chyba, pokud se balíček nenajde.add_executable(HelloWorld helloworld.cpp)
: Přidá spustitelný cíl s názvem "HelloWorld", vytvořený ze zdrojového souboruhelloworld.cpp
.target_link_libraries(HelloWorld PRIVATE fmt::fmt)
: Určuje, žeHelloWorld
spustitelný soubor by měl odkazovat na knihovnufmt
. KlíčovéPRIVATE
slovo označuje, žefmt
je potřeba pouze pro sestavováníHelloWorld
a nemělo by se šířit do jiných závislých projektů.
4. Sestavení a spuštění projektu
Sestavte projekt.
Stisknutím klávesy
Ctrl+Shift+B
sestavte projekt v sadě Visual Studio.Aplikaci spusťte.
Nakonec spusťte spustitelný soubor:
Snímek obrazovky s uživatelským rozhraním sady Visual Studio pro spuštění spustitelného souboru
Měl by se zobrazit výstup:
Snímek obrazovky s výstupy programu – Hello World!
Další kroky
Další informace najdete vcpkg.json
v referenční dokumentaci: