Kurz: Instalace závislosti z příkazového řádku
Tip
V části Instalace závislosti ze souboru manifestu najdete doporučenou metodu instalace závislostí.
Upozornění
Některé funkce vcpkg nejsou dostupné v klasickém režimu.
Vcpkg má dva režimy operací: klasický režim a režim manifestu. Tento článek popisuje, jak nainstalovat balíčky pomocí klasického režimu. Pro většinu uživatelů doporučujeme místo toho používat režim manifestu.
V klasickém režimu použijete vcpkg jako rozhraní příkazového řádku k instalaci závislostí do společného instalačního adresáře. Obvykle se nachází v %VCPKG_ROOT%/installed
umístění , kde %VCPKG_ROOT%
je instalační adresář vcpkg.
V tomto kurzu se naučíte:
- vcpkg
- Terminál
- Editor kódu
- Kompilátor C++
- (Volitelné) CMake nebo MSBuild
V nové složce vytvořte zdrojový soubor s názvem main.cxx
s těmito obsahy:
#include <cxxopts.hpp>
#include <fmt/format.h>
#include <range/v3/view.hpp>
namespace view = ranges::views;
int fib(int x)
{
int a = 0, b = 1;
for (int it : view::repeat(0) | view::take(x))
{
(void)it;
int tmp = a;
a += b;
b = tmp;
}
return a;
}
int main(int argc, char **argv)
{
cxxopts::Options options("fibo", "Print the fibonacci sequence up to a value 'n'");
options.add_options()("n,value", "The value to print to", cxxopts::value<int>()->default_value("10"));
auto result = options.parse(argc, argv);
auto n = result["value"].as<int>();
for (int x : view::iota(1) | view::take(n))
{
fmt::print("fib({}) = {}\n", x, fib(x));
}
}
Kód odkazuje na opensourcové knihovny: cxxopts
, fmt
a range-v3
; které jsou k dispozici ve veřejném registru vcpkg na adrese https://github.com/Microsoft/vcpkg.
V tomto kroku vám ukážeme, jak integrovat vcpkg s CMake nebo MSBuild, aby se závislosti projektu automaticky nainstalovaly nebo obnovily při každém sestavení projektu.
Pokud používáte jiný systém sestavení, přejděte k dalšímu kroku: Nainstalujte závislosti.
Pokud chcete v projektech MSBuild použít vcpkg, spusťte následující příkaz:
vcpkg integrate install
Příkaz je potřeba spustit vcpkg integrate install
jenom při prvním povolení integrace nástroje MSBuild. To umožňuje integraci nástroje MSBuild pro všechny vaše stávající a budoucí projekty. Slouží vcpkg integrate remove
k odebrání systémové integrace nástroje MSBuild.
Tato metoda integrace automaticky přidá balíčky nainstalované vcpkg do následujících vlastností projektu: Include Directories
, Link Directories
a Link Libraries
. Kromě toho se vytvoří akce po sestavení, která zajistí, že se všechny požadované knihovny DLL zkopírují do výstupní složky sestavení. To funguje pro všechna řešení a projekty pomocí sady Visual Studio 2015 nebo novější.
Kód odkazuje na opensourcové knihovny: cxxopts
, fmt
a range-v3
; jsou všechny k dispozici ve veřejném registru vcpkg na adrese https://github.com/Microsoft/vcpkg.
K instalaci těchto balíčků použijte vcpkg install
příkaz.
vcpkg install cxxopts fmt range-v3
$ ./vcpkg install cxxopts fmt range-v3
Computing installation plan...
The following packages will be built and installed:
cxxopts:x64-windows -> 3.1.1
fmt:x64-windows -> 10.0.0
range-v3:x64-windows -> 0.12.0#1
* vcpkg-cmake:x64-windows -> 2023-05-04
* vcpkg-cmake-config:x64-windows -> 2022-02-06#1
Additional packages (*) will be modified to complete this operation.
(omitted)
cxxopts provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(cxxopts CONFIG REQUIRED)
target_link_libraries(main PRIVATE cxxopts::cxxopts)
The package fmt provides CMake targets:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt)
# Or use the header-only version
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt-header-only)
range-v3 provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(range-v3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE range-v3::meta range-v3::concepts range-v3::range-v3)
Důležité
Ujistěte se, že trojití nainstalovaných balíčků odpovídá konfiguraci projektu. Používejte x64-windows
nebo x64-windows-static
pro 64bitové projekty nebo x86-windows
x86-windows-static
pro 32bitové projekty.
S povolenou integrací celého systému stačí spustit msbuild
sestavení projektu:
PS D:\projects\manifest-example> msbuild
MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework
Build started 8/13/2023 3:07:36 PM.
Project "D:\projects\manifest-example\manifest-example.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
(omitted)
PrepareForBuild:
(omitted)
InitializeBuildStatus:
(omitted)
ComputeStdModulesCompileInputs:
(omitted)
SetModuleDependencies:
VcpkgTripletSelection:
Using triplet "x64-windows" from "D:\vcpkg\installed\x64-windows\"
Using normalized configuration "Debug"
ClCompile:
(omitted)
Link:
(omitted)
AppLocalFromInstalled:
pwsh.exe -ExecutionPolicy Bypass -noprofile -File "D:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "D:\projects\manifest-example\x64\Debug\manifest-example.exe"
"D:\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\manifest-example.tlog\manifest-example.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
D:\projects\manifest-example\x64\Debug\fmtd.dll
FinalizeBuildStatus:
Deleting file "x64\Debug\manifest-example.tlog\unsuccessfulbuild".
Touching "x64\Debug\manifest-example.tlog\manifest-example.lastbuildstate".
Done Building Project "D:\projects\manifest-example\manifest-example.vcxproj" (default targets).
Done Building Project "D:\projects\manifest-example\manifest-example.sln" (default targets).
Build succeeded.
V tomto kurzu jste nainstalovali závislosti pro jednoduchý projekt pomocí vcpkg jako rozhraní příkazového řádku.
Tady je několik dalších úkolů, které můžete vyzkoušet:
- Instalace balíčků pomocí souboru manifestu
- Instalace balíčků pro vlastní platformy pomocí tripletů
- Uzamčení verzí pro opakovatelné buildy pomocí správy verzí
- Opakované použití binárních binárních souborů napříč běhy kontinuální integrace s využitím binární mezipaměti
- Správa privátních knihoven pomocí vlastních registrů
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: