Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.gitKurá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
vcpkgadresáře a spusťte spouštěcí skript:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shSkript 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_ROOTprostředí.export VCPKG_ROOT=/path/to/vcpkg export PATH=$VCPKG_ROOT:$PATHPoznámka:
Nastavení proměnných prostředí pomocí
exportpříkazu ovlivní pouze aktuální relaci prostředí. Pokud chcete tuto změnu provést trvale napříč relacemi, přidejteexportpříkaz do skriptu profilu vašeho prostředí (např~/.bashrc. ).~/.zshrcset "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, žePATHmůž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 newpříkazu zhelloworldadresáře:vcpkg new --applicationDále přidejte
fmtzávislost:vcpkg add port fmtMěl
vcpkg.jsonby 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.jsonsoubor 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.jsonsprávu zdrojového kódu, abyste zajistili konzistenci verzí v různých vývojových prostředích.Vytvořte soubory projektu.
CMakeLists.txtVytvořte soubor s následujícím obsahem: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.txtsouboru: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íhofmtsouboru CMake. KlíčovéREQUIREDslovo 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, žeHelloWorldspustitelný soubor by měl odkazovat na knihovnufmt. KlíčovéPRIVATEslovo označuje, žefmtje potřeba pouze pro sestavováníHelloWorlda nemělo by se šířit do jiných závislých projektů.
helloworld.cppVytvořte soubor s následujícím obsahem:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }V tomto
helloworld.cppsouboru je hlavička<fmt/core.h>zahrnutá pro použitífmtknihovny. 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
CMake může automaticky propojit knihovny nainstalované nástrojem vcpkg, pokud
CMAKE_TOOLCHAIN_FILEje nastavená tak, aby používala vlastní sadu nástrojů vcpkg. To může být dokončeno pomocí přednastavení CMake soubory.V adresáři
helloworldvytvořte následující soubory:CMakePresets.json{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }CMakeUserPresets.json{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }Soubor
CMakePresets.jsonobsahuje jednu předvolbu s názvem "vcpkg", která nastaví proměnnouCMAKE_TOOLCHAIN_FILE. SouborCMakeUserPresets.jsonnastaví proměnnouVCPKG_ROOTprostředí tak, aby odkazovat na absolutní cestu obsahující vaši místní instalaci vcpkg. Doporučuje se nekontrolovatCMakeUserPresets.jsonsystémy správy verzí.Nakonec nakonfigurujte sestavení pomocí CMake:
cmake --preset=defaultSestavení projektu
Run (Spuštění):
cmake --build buildSpuš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!