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

  1. 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.

  2. 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

  1. 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řidejte export 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, že PATH můžete spouštět příkazy vcpkg přímo z prostředí.

  2. Vytvořte adresář projektu.

    mkdir helloworld && cd helloworld
    

3. Přidání závislostí a souborů projektu

  1. Vytvořte soubor manifestu a přidejte závislost fmt .

    Nejprve v adresáři projektu vytvořte soubor manifestu (vcpkg.json) spuštěním vcpkg new příkazu z helloworld 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řidat vcpkg-configuration.json správu zdrojového kódu, abyste zajistili konzistenci verzí v různých vývojových prostředích.

  2. 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ího fmt 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 souboru main.cpp.
    • target_link_libraries(HelloWorld PRIVATE fmt::fmt): Určuje, že HelloWorld spustitelný soubor by měl odkazovat na knihovnu fmt . Klíčové PRIVATE slovo označuje, že fmt 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. Funkce main() pak zavolá fmt::print() výstup zprávy "Hello World!" do konzoly.

4. Sestavení a spuštění projektu

  1. 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řte CMakePresets.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ěnnou CMAKE_TOOLCHAIN_FILE . Umožňuje CMAKE_TOOLCHAIN_FILE systému projektů CMake rozpoznávat knihovny jazyka C++, které poskytuje vcpkg. Přidání automatizuje CMakePresets.json proces určení sady nástrojů při spuštění CMake.

    Konfigurace sestavení pomocí CMake:

    cmake --preset=default
    
  2. Sestavení projektu

    Run (Spuštění):

    cmake --build build
    
  3. 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.jsonv referenční dokumentaci: