Kurz: Instalace a použití balíčků s vcpkg
V tomto kurzu se dozvíte, jak vytvořit program "Hello World" jazyka C++, který používá knihovnu fmt
s CMake a vcpkg. Nainstalujete závislosti, nakonfigurujete, sestavíte a spustíte jednoduchou aplikaci.
Požadavky
Poznámka:
Pro uživatele Windows je požadovaným kompilátorem pro vývoj v jazyce C++ visual studio MSVC (Microsoft Visual C++Compiler).
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
Nakonfigurujte proměnnou
VCPKG_ROOT
prostředí.export VCPKG_ROOT=/path/to/vcpkg export PATH=$VCPKG_ROOT:$PATH
Poznámka:
Nastavení proměnných prostředí pomocí
export
příkazu ovlivní pouze aktuální relaci prostředí. Pokud chcete tuto změnu provést trvale napříč relacemi, přidejteexport
příkaz do skriptu profilu vašeho prostředí (např~/.bashrc
. ).~/.zshrc
set VCPKG_ROOT="C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
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.
$env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
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.
Nastavení
VCPKG_ROOT
říká vcpkg, kde se nachází vaše instance vcpkg. Přidáním zajistíte, žePATH
můžete spouštět příkazy vcpkg přímo z prostředí.Vytvořte adresář projektu.
mkdir helloworld && cd helloworld
3. Přidání závislostí a souborů projektu
Vytvořte soubor manifestu a přidejte závislost
fmt
.Nejprve v adresáři projektu vytvořte soubor manifestu (
vcpkg.json
) spuštěnímvcpkg new
příkazu zhelloworld
adresáře:vcpkg new --application
Dále přidejte
fmt
závislost:vcpkg add port fmt
Měl
vcpkg.json
by vypadat takto:{ "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.
Výchozí
vcpkg-configuration.json
soubor zavádí omezení směrného plánu a určuje minimální verze závislostí, které má váš projekt použít. Při úpravě tohoto souboru je tento kurz nad rámec tohoto kurzu, hraje zásadní roli při definování omezení verzí pro závislosti projektu. Proto i když tento kurz není nezbytně nutný, je vhodné do správy zdrojového kódu přidatvcpkg-configuration.json
správu zdrojového kódu, abyste zajistili konzistenci verzí v různých vývojových prostředích.Vytvořte soubory projektu.
CMakeLists.txt
Vytvořte soubor s následujícím obsahem: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)
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žší, vygeneruje se chyba.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 main.cpp)
: Přidá spustitelný cíl s názvem "HelloWorld", vytvořený ze zdrojového souborumain.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ů.
main.cpp
Vytvořte soubor s následujícím obsahem:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
V tomto
main.cpp
souboru je hlavička<fmt/core.h>
zahrnutá pro použitífmt
knihovny. Funkcemain()
pak zavoláfmt::print()
výstup zprávy "Hello World!" do konzoly.
4. Sestavení a spuštění projektu
Spuštění konfigurace CMake
Pokud chcete systému projektů CMake povolit rozpoznávání knihoven C++, které poskytuje vcpkg, budete muset zadat
vcpkg.cmake
soubor sady nástrojů. Pokud chcete tento postup automatizovat, vytvořteCMakePresets.json
soubor v adresáři "helloworld" s následujícím obsahem:{ "version": 2, "configurePresets": [ { "name": "default", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }
Tento
CMakePresets.json
soubor obsahuje jednu výchozí předvolbu pro CMake a nastaví proměnnouCMAKE_TOOLCHAIN_FILE
. UmožňujeCMAKE_TOOLCHAIN_FILE
systému projektů CMake rozpoznávat knihovny jazyka C++, které poskytuje vcpkg. Přidání automatizujeCMakePresets.json
proces určení sady nástrojů při spuštění CMake.Konfigurace sestavení pomocí CMake:
cmake --preset=default
Sestavení projektu
Run (Spuštění):
cmake --build build
Spuštění aplikace
Nakonec spusťte spustitelný soubor, aby se vaše aplikace zobrazila v akci:
./build/HelloWorld Hello World!
.\build\HelloWorld.exe Hello World!
Další kroky
Další informace najdete vcpkg.json
v referenční dokumentaci:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro