Niektóre funkcje programu vcpkg nie są dostępne w trybie klasycznym.
Program vcpkg ma dwa tryby operacji: tryb klasyczny i tryb manifestu. W tym artykule opisano sposób instalowania pakietów przy użyciu trybu klasycznego. W przypadku większości użytkowników zalecamy zamiast tego używanie trybu manifestu.
W trybie klasycznym używasz narzędzia vcpkg jako interfejsu wiersza polecenia, aby zainstalować zależności w typowym katalogu instalacyjnym. Zazwyczaj znajduje się w %VCPKG_ROOT%/installedlokalizacji , gdzie %VCPKG_ROOT% znajduje się katalog instalacyjny programu vcpkg.
Z tego samouczka dowiesz się, jak wykonywać następujące elementy:
W nowym folderze utwórz plik źródłowy o nazwie o main.cxx następującej zawartości:
#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));
}
}
Kod odwołuje się do bibliotek open source: cxxopts, fmti range-v3; które są dostępne w publicznym rejestrze vcpkg pod adresem https://github.com/Microsoft/vcpkg.
2 — Integrowanie narzędzia vcpkg z systemem kompilacji
W tym kroku pokazano, jak zintegrować narzędzie vcpkg z narzędziem CMake lub MSBuild, dzięki czemu zależności projektu będą automatycznie instalowane lub przywracane podczas kompilowania projektu.
Jeśli używasz innego systemu kompilacji, przejdź do następnego kroku: Instalowanie zależności.
Aby użyć narzędzia vcpkg w projektach MSBuild, uruchom następujące polecenie:
vcpkg integrate install
Wystarczy uruchomić polecenie przy pierwszym włączeniu vcpkg integrate install integracji z programem MSBuild. Umożliwia to integrację programu MSBuild ze wszystkimi istniejącymi i przyszłymi projektami. Użyj vcpkg integrate remove polecenia , aby usunąć integrację w całym systemie MSBuild.
Ta metoda integracji automatycznie dodaje pakiety zainstalowane przez program vcpkg do następujących właściwości projektu: Include Directories, Link Directoriesi Link Libraries. Ponadto spowoduje to utworzenie akcji po kompilacji, która gwarantuje, że wszystkie wymagane biblioteki DLL zostaną skopiowane do folderu wyjściowego kompilacji. Działa to w przypadku wszystkich rozwiązań i projektów korzystających z programu Visual Studio 2015 lub nowszego.
Aby użyć narzędzia vcpkg w projektach CMake, należy ustawić zmienną CMAKE_TOOLCHAIN_FILE tak, aby korzystała z pliku CMake narzędzia narzędzia vcpkg. Łańcuch narzędzi vcpkg znajduje się w katalogu %VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake, gdzie %VCPKG_ROOT% to ścieżka instalacji narzędzia vcpkg.
Aby ustawić plik łańcucha narzędzi, użyj dowolnej z następujących metod:
Ustaw element CMAKE_TOOLCHAIN_FILE w pliku CMakePresets.json.
Przekaż -DCMAKE_TOOLCHAIN_FILE=<path/to/vcpkg>/scripts/buildsystems/vcpkg.cmake jako parametr w wywołaniu konfiguracji narzędzia CMake.
Ustaw zmienną CMAKE_TOOLCHAIN_FILE CMake przed pierwszym wywołaniem project() metody w CMakeLists.txt pliku.
3 — Instalowanie zależności
Kod odwołuje się do bibliotek typu open source: cxxopts, fmti range-v3; są one dostępne w publicznym rejestrze vcpkg pod adresem https://github.com/Microsoft/vcpkg.
Aby zainstalować te pakiety, użyj vcpkg install polecenia .
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)
4 — Kompilowanie projektu
Ważne
Upewnij się, że potrójność zainstalowanych pakietów jest zgodna z konfiguracją projektu. Używaj x64-windows projektów 64-bitowych lub x64-windows-static dla projektów x86-windows 32-bitowych.x86-windows-static
Uruchom następujące polecenie: cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake, ale zastąp ciąg %VCPKG_ROOT% ścieżką instalacji programu vcpkg.
PS D:\projects\manifest-example> cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.25921.
-- The CXX compiler identification is MSVC 19.37.32814.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Preview/VC/Tools/MSVC/14.37.32814/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/projects/manifest-example/build
3 — Kompilowanie projektu CMake
Uruchom następujące polecenie, aby skompilować projekt: : cmake --build build
PS D:\projects\manifest-example> cmake --build build
MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework
Checking Build System
Building Custom Rule D:/projects/manifest-example/CMakeLists.txt
main.cxx
fibo.vcxproj -> D:\projects\manifest-example\build\Debug\fibo.exe
Building Custom Rule D:/projects/manifest-example/CMakeLists.txt
Następne kroki
W tym samouczku zainstalowano zależności dla prostego projektu przy użyciu narzędzia vcpkg jako interfejsu wiersza polecenia.
Poniżej przedstawiono kilka dodatkowych zadań, które należy wykonać, aby spróbować wykonać następne czynności:
Instalowanie pakietów przy użyciu pliku manifestu
Instalowanie pakietów dla niestandardowych platform przy użyciu trypletów
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię:
Utwórz projekt platformy .NET i dowiedz się, jak dodawać pakiety i zarządzać zależnościami pakietów w projekcie. Użyj interfejsu wiersza polecenia platformy .NET Core i rejestru NuGet, aby dodać biblioteki i narzędzia do aplikacji w języku C# przy użyciu programu Visual Studio Code.