Kurz: Instalace a používání balíčků pomocí CMake v editoru Visual Studio Code
V tomto kurzu se dozvíte, jak vytvořit program "Hello World" jazyka C++, který používá knihovnu fmt
s CMake, vcpkg a editorem Visual Studio Code. Nainstalujete závislosti, nakonfigurujete, sestavíte a spustíte jednoduchou aplikaci.
Požadavky
- Visual Studio Code
- Kompilátor C++
- Windows 7 nebo novější
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. Vytvoření složky projektu
Poznámka:
Pokud tento kurz používáte ve Windows a jako kompilátor používáte MSVC, musíte spustit instanci editoru Visual Studio Code z příkazového řádku pro vývojáře pro VS nebo Developer PowerShell pro VS. Tím se zajistí správné nastavení cesty kompilátoru a dalších proměnných prostředí.
Vytvořte složku pro uložení souborů projektu do libovolného umístění. Pro účely tohoto kurzu vytvoříme složku s názvem "helloworld". Pak otevřete složku pomocí editoru Visual Studio Code.
mkdir helloworld
code helloworld
3. Instalace rozšíření editoru Visual Studio Code
Přejděte do zobrazení rozšíření a nainstalujte rozšíření C++. To umožňuje technologii IntelliSense jazyka C++ a navigaci v kódu.
Snímek obrazovky se zobrazením rozšíření editoru Visual Studio Code s rozšířením jazyka C++
Nainstalujte rozšíření nástrojů CMake. To umožňuje podporu CMake v editoru Visual Studio Code.
Snímek obrazovky se zobrazením rozšíření editoru Visual Studio Code s rozšířením nástrojů CMake
4. Nastavení proměnných prostředí
- Nakonfigurujte proměnnou
VCPKG_ROOT
prostředí.
Otevření nového terminálu v editoru Visual Studio Code: Terminál > nový terminál
Spusťte následující příkazy:
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"
Snímek obrazovky s nastavením VCPKG_ROOT a jeho přidáním do path v terminálu editoru Visual Studio Code
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.
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.
set "VCPKG_ROOT=C:\path\to\vcpkg"
set 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
export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT
Nastavení VCPKG_ROOT
pomáhá editoru Visual Studio Code 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í.
- 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
) v kořenovém adresáři helloworld
složky:
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, aby se dozvěděl, jaké závislosti se mají nainstalovat a integrovat s nástrojem MSBuild, 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.
5. Nastavení souborů projektu
CMakeLists.txt
Vytvoření souboru
Vytvořte nový soubor s názvem CMakeLists.txt
v kořenové složce projektu 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 si 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 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, ž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ů.
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.
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": "vcpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}
- V adresáři "helloworld" vytvořte
CMakeUserPresets.json
soubor s následujícím obsahem:
{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {
"VCPKG_ROOT": "<path to vcpkg>"
}
}
]
}
Tento CMakePresets.json
soubor obsahuje jednu předvolbu vcpkg 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. Pouze CMakePresets.json
se má vrátit se změnami do správy zdrojového kódu, pokud CMakeUserPresets.json
se má používat místně.
6. Sestavení a spuštění projektu
CMake: Build
Spusťte příkaz projektu tak, že přejdete na paletu příkazů v paletě příkazů zobrazení>.
Snímek obrazovky s výběrem příkazu sestavení CMake v editoru Visual Studio Code
Vyberte předvolbu default
CMake. To umožňuje sadu nástrojů vcpkg.
Snímek obrazovky s výběrem přednastavení v příkazu sestavení CMake v editoru Visual Studio Code
- Spuštění projektu
Spusťte program:
./build/HelloWorld.exe
./build/HelloWorld
Měl by se zobrazit výstup:
Hello World!
Další kroky
Další informace najdete vcpkg.json
v referenční dokumentaci: