Číst v angličtině

Sdílet prostřednictvím


Kurz: Instalace a používání balíčků pomocí CMake

Terminal options

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 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žší, 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 helloworld.cpp): Přidá spustitelný cíl s názvem "HelloWorld", vytvořený ze zdrojového souboru helloworld.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ů.

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

    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.

    V adresáři helloworld vytvoř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.json obsahuje jednu předvolbu s názvem "vcpkg", která nastaví proměnnou CMAKE_TOOLCHAIN_FILE . Soubor CMakeUserPresets.json nastaví proměnnou VCPKG_ROOT prostředí tak, aby odkazovat na absolutní cestu obsahující vaši místní instalaci vcpkg. Doporučuje se nekontrolovat CMakeUserPresets.json systémy správy verzí.

    Nakonec nakonfigurujte 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