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

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 sady Visual Studio

  1. Vytvoření projektu sady Visual Studio

    • Vytvoření nového projektu v sadě Visual Studio pomocí šablony "Projekt CMake"

    vytvoření nového projektu 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.

    pojmenování projektu CMake

    Snímek obrazovky uživatelského rozhraní sady Visual Studio pro pojmenování projektu CMake a kliknutí na tlačítko Vytvořit

  2. Nakonfigurujte proměnnou VCPKG_ROOT prostředí.

    Otevřete integrované okno Developer PowerShellu v sadě Visual Studio.

    otevření integrovaného vývojářského powershellu

    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"
    

    nastavení proměnných prostředí

    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

    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 příkazový řádek Vývojář v sadě Visual Studio.

    otevřete příkazový řádek pro vývojáře sady 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%
    

    nastavení proměnných prostředí

    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

    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 pomáhá sadě Visual Studio najít instanci vcpkg. Přidáním zajistíte, že PATH můžete spouštět příkazy vcpkg přímo z prostředí.

  3. 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 a vcpkg-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é zachovat vcpkg-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

  1. 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. Funkce main() volá fmt::print() výstup zprávy "Hello World!" do konzoly.

  2. Nakonfigurujte CMakePresets.json soubor.

    • Soubor CMakePresets.json přejmenujte na CMakeUserPresets.json.
    • Aktualizujte jeho obsah, jak je znázorněno níže. Nahraďte <VCPKG_ROOT> cestu k adresáři vcpkg.
    {
      "version": 2,
      "configurePresets": [
        {
          "name": "default",
          "generator": "Ninja",
          "binaryDir": "${sourceDir}/build",
          "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "<VCPKG_ROOT>/scripts/buildsystems/vcpkg.cmake"
          }
        }
      ]
    }
    
    • Vzhledem k tomu, že tento soubor obsahuje pevně zakódovanou absolutní cestu, doporučujeme tento soubor ponechat ve správě zdrojového kódu. Pokud používáte Git, přidejte CMakeUserPresets.json ho do souboru .gitignore .

    Soubor CMakeUserPresets.json obsahuje jednu předvolbu s názvem "default", tato předvolba nastaví CMAKE_TOOLCHAIN_FILE použití souboru sady nástrojů CMake vcpkg. To umožňuje vcpkg poskytovat balíčky CMake při konfiguraci a sestavení projektu. Další informace najdete v dokumentaci k integraci Vcpkg CMake.

  3. Ú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 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žší, sestavení se nezdaří.
    • 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ů.

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

  1. Sestavte projekt.

    Stisknutím klávesy Ctrl+Shift+B sestavte projekt v sadě Visual Studio.

  2. Aplikaci spusťte.

    Nakonec spusťte spustitelný soubor:

    Spuštění spustitelného souboru

    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:

    Výstup programu

    Snímek obrazovky s výstupy programu – Hello World!

Další kroky

Další informace najdete vcpkg.jsonv referenční dokumentaci: