Certaines fonctionnalités vcpkg ne sont pas disponibles en mode classique.
vcpkg a deux modes d’opération : le mode classique et le mode manifeste. Cet article explique comment installer des packages à l’aide du mode classique. Pour la plupart des utilisateurs, nous vous recommandons d’utiliser le mode manifeste à la place.
En mode classique, vous utilisez vcpkg comme interface de ligne de commande pour installer vos dépendances dans un répertoire d’installation commun. Généralement, situé dans %VCPKG_ROOT%/installed, où %VCPKG_ROOT% se trouve le répertoire d’installation de vcpkg.
Ce didacticiel vous apprendra à effectuer les opérations suivantes :
Dans un nouveau dossier, créez un fichier source nommé main.cxx avec le contenu suivant :
#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));
}
}
Le code fait référence aux bibliothèques open source : cxxopts, fmtet range-v3; qui sont toutes disponibles dans le registre public vcpkg à l’adresse https://github.com/Microsoft/vcpkg.
2 - Intégrer vcpkg à votre système de build
Dans cette étape, nous vous montrons comment intégrer vcpkg à CMake ou MSBuild afin que vos dépendances de projet soient automatiquement installées ou restaurées chaque fois que vous générez le projet.
Si vous utilisez un autre système de génération, passez à l’étape suivante : Installez les dépendances.
Vous devez uniquement exécuter la vcpkg integrate install commande la première fois que vous souhaitez activer l’intégration MSBuild. Cela permet l’intégration de MSBuild pour tous vos projets existants et futurs. Permet vcpkg integrate remove de supprimer l’intégration à l’échelle du système MSBuild.
Cette méthode d’intégration ajoute automatiquement des packages installés par vcpkg aux propriétés de projet suivantes : Include Directories, Link Directorieset Link Libraries. En outre, cela crée une action post-build qui garantit que toutes les DLL requises sont copiées dans le dossier de sortie de build. Cela fonctionne pour toutes les solutions et projets à l’aide de Visual Studio 2015 ou version ultérieure.
Pour utiliser vcpkg dans vos projets CMake, vous devez définir la variable pour utiliser le CMAKE_TOOLCHAIN_FILE fichier de chaîne d’outils CMake de vcpkg. La chaîne d’outils vcpkg se trouve dans %VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake, où %VCPKG_ROOT% se trouve votre chemin d’installation vcpkg.
Pour définir le fichier de chaîne d’outils, utilisez l’une des méthodes suivantes :
Définissez le CMAKE_TOOLCHAIN_FILE fichier CMakePresets.json.
-DCMAKE_TOOLCHAIN_FILE=<path/to/vcpkg>/scripts/buildsystems/vcpkg.cmake Passez en tant que paramètre dans votre appel de configuration CMake.
Définissez la CMAKE_TOOLCHAIN_FILE variable CMake avant le premier appel à project() votre CMakeLists.txt fichier.
3 - Installer les dépendances
Le code fait référence aux bibliothèques open source : cxxopts, fmtet range-v3; tous sont disponibles dans le registre public vcpkg à l’adresse https://github.com/Microsoft/vcpkg.
Pour installer ces packages, utilisez la vcpkg install commande.
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 - Générer le projet
Important
Assurez-vous que le triplet de vos packages installés correspond à la configuration de votre projet. Utilisez x64-windows ou x64-windows-static pour vos projets 64 bits et x86-windows ou x86-windows-static pour vos projets 32 bits.
Exécutez la commande suivante : cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake, mais remplacez %VCPKG_ROOT% par votre chemin d’installation 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 - Générer le projet CMake
Exécutez la commande suivante pour générer le projet : 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
Étapes suivantes
Dans ce tutoriel, vous avez installé des dépendances pour un projet simple à l’aide de vcpkg comme interface de ligne de commande.
Voici quelques tâches supplémentaires à essayer ensuite :
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur vcpkg
vcpkg est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Créez un projet .NET et apprenez à ajouter des packages et à gérer les dépendances de package de votre projet. Utilisez CLI .NET Core et le registre NuGet pour ajouter des bibliothèques et des outils à vos applications C# par le biais de Visual Studio Code.