Partager via


Tutoriel : Installer et utiliser des packages avec CMake dans Visual Studio Code

Ce tutoriel vous montre comment créer un programme « Hello World » C++ qui utilise la fmt bibliothèque avec CMake, vcpkg et Visual Studio Code. Vous allez installer des dépendances, configurer, générer et exécuter une application simple.

Prérequis

1 - Configurer vcpkg

  1. Cloner le référentiel

    La première étape consiste à cloner le référentiel vcpkg à partir de GitHub. Le référentiel contient des scripts pour acquérir l’exécutable vcpkg et un registre de bibliothèques open source organisées gérées par la communauté vcpkg. Pour ce faire, exécutez :

    git clone https://github.com/microsoft/vcpkg.git
    

    Le registre organisé vcpkg est un ensemble de plus de 2 000 bibliothèques open source. Ces bibliothèques ont été validées par les pipelines d’intégration continue de vcpkg pour fonctionner ensemble. Bien que le référentiel vcpkg ne contienne pas le code source de ces bibliothèques, il contient des recettes et des métadonnées pour les générer et les installer dans votre système.

  2. Exécuter le script bootstrap

    Maintenant que vous avez cloné le référentiel vcpkg, accédez au vcpkg répertoire et exécutez le script de démarrage :

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    Le script d’amorçage effectue des vérifications des prérequis et télécharge l’exécutable vcpkg.

    Et voilà ! vcpkg est configuré et prêt à être utilisé.

2 - Créer un dossier de projet

Remarque

Si vous exécutez ce didacticiel dans Windows et que vous utilisez MSVC comme compilateur, vous devez démarrer l’instance visual Studio Code à partir d’une invite de commandes développeur pour VS ou Developer PowerShell pour VS. Cela garantit que le chemin du compilateur et d’autres variables d’environnement sont correctement configurés.

Créez un dossier pour contenir les fichiers projet dans un emplacement de votre choix. Pour ce tutoriel, nous créons un dossier nommé « helloworld ». Ouvrez ensuite le dossier à l’aide de Visual Studio Code.

mkdir helloworld
code helloworld

3 - Installer des extensions Visual Studio Code

Accédez à la vue Extension et installez l’extension C++. Cela active IntelliSense C++ et la navigation dans le code.

Installation de l’extension Visual Studio Code C++

Capture d’écran de la vue Extension Visual Studio Code avec l’extension C++

Installez l’extension outils CMake. Cela permet la prise en charge de CMake dans Visual Studio Code.

Installation de l’extension Visual Studio Code CMake Tools

Capture d’écran de la vue Extension Visual Studio Code avec l’extension Outils CMake

4 - Configurer des variables d’environnement

  1. Configurez la VCPKG_ROOT variable environnementale.

Ouvrir un nouveau terminal dans Visual Studio Code : Terminal New Terminal >

Exécutez les commandes suivantes :

Remarque

La définition de variables d’environnement de cette façon affecte uniquement la session de terminal active. Pour rendre ces modifications permanentes dans toutes les sessions, définissez-les via le panneau Variables d’environnement système Windows.

$env:VCPKG_ROOT="C:\path\to\vcpkg"
$env:PATH="$env:VCPKG_ROOT;$env:PATH"

configuration des variables d’environnement vcpkg

Capture d’écran de la configuration de VCPKG_ROOT et son ajout à PATH dans un terminal Visual Studio Code.

Remarque

La définition de variables d’environnement de cette façon affecte uniquement la session de terminal active. Pour rendre ces modifications permanentes dans toutes les sessions, définissez-les via le panneau Variables d’environnement système Windows.

Remarque

La définition de variables d’environnement de cette façon affecte uniquement la session de terminal active. Pour rendre ces modifications permanentes dans toutes les sessions, définissez-les via le panneau Variables d’environnement système Windows.

set "VCPKG_ROOT=C:\path\to\vcpkg"
set PATH=%VCPKG_ROOT%;%PATH%

Remarque

La définition de variables d’environnement à l’aide de la export commande affecte uniquement la session shell active. Pour rendre cette modification permanente entre les sessions, ajoutez la export commande au script de profil de votre interpréteur de commandes (par exemple, ~/.bashrc ou ~/.zshrc).

export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT

Le paramètre VCPKG_ROOT aide Visual Studio Code à localiser votre instance vcpkg. L’ajout de ces commandes vous PATH permet d’exécuter des commandes vcpkg directement à partir de l’interpréteur de commandes.

  1. Générez un fichier manifeste et ajoutez des dépendances.

Exécutez la commande suivante pour créer un fichier manifeste vcpkg (vcpkg.json) à la racine du helloworld dossier :

vcpkg new --application

La vcpkg new commande ajoute un vcpkg.json fichier et un vcpkg-configuration.json fichier dans le répertoire du projet.

Ajoutez le fmt package en tant que dépendance :

vcpkg add port fmt

Votre vcpkg.json doit maintenant contenir :

{
  "dependencies": [
    "fmt"
  ]
}

Il s’agit de votre fichier manifeste. vcpkg lit le fichier manifeste pour savoir quelles dépendances installer et intégrer à MSBuild pour fournir les dépendances requises par votre projet.

Le fichier généré vcpkg-configuration.json introduit une base de référence qui place les contraintes de version minimales sur les dépendances du projet. La modification de ce fichier dépasse le cadre de ce didacticiel. Bien qu’il ne soit pas applicable dans ce didacticiel, il est recommandé de conserver le fichier sous contrôle de code source pour garantir la vcpkg-configuration.json cohérence des versions dans différents environnements de développement.

5 - Configurer les fichiers projet

  1. Créer le CMakeLists.txt fichier

Créez un fichier nommé CMakeLists.txt à la racine du dossier du projet avec le contenu suivant :

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)

Nous allons décomposer chaque ligne du CMakeLists.txt fichier :

  • cmake_minimum_required(VERSION 3.10): spécifie que la version minimale de CMake requise pour générer le projet est 3.10. Si la version de CMake installée sur votre système est inférieure à celle-ci, une erreur est générée.
  • project(HelloWorld): définit le nom du projet sur « HelloWorld ».
  • find_package(fmt CONFIG REQUIRED): recherche la bibliothèque à l’aide de fmt son fichier de configuration CMake. Le REQUIRED mot clé garantit qu’une erreur est générée si le package est introuvable.
  • add_executable(HelloWorld helloworld.cpp): ajoute une cible exécutable nommée « HelloWorld », générée à partir du fichier helloworld.cppsource.
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt): spécifie que l’exécutable HelloWorld doit être lié à la fmt bibliothèque. Le PRIVATE mot clé indique qu’il fmt est uniquement nécessaire pour la génération HelloWorld et ne doit pas se propager à d’autres projets dépendants.
  1. Créez le helloworld.cpp fichier avec le contenu suivant :
#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

Dans ce helloworld.cpp fichier, l’en-tête <fmt/core.h> est inclus pour l’utilisation de la fmt bibliothèque. La main() fonction appelle fmt::print() ensuite pour générer le message « Hello World ! » dans la console.

Pour permettre au système de projet CMake de reconnaître les bibliothèques C++ fournies par vcpkg, vous devez fournir le vcpkg.cmake fichier de chaîne d’outils. Pour automatiser cela, créez un CMakePresets.json fichier dans le répertoire « helloworld » avec le contenu suivant :

{
  "version": 2,
  "configurePresets": [
    {
      "name": "vcpkg",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
      }
    }
  ]
}
  1. Créez un CMakeUserPresets.json fichier dans le répertoire « helloworld » avec le contenu suivant :
{
    "version": 2,
    "configurePresets": [
      {
        "name": "default",
        "inherits": "vcpkg",
        "environment": {
          "VCPKG_ROOT": "<path to vcpkg>"
        }
      }
    ]
  }

Ce CMakePresets.json fichier contient une présélection « vcpkg » unique pour CMake et définit la CMAKE_TOOLCHAIN_FILE variable. Le CMAKE_TOOLCHAIN_FILE système de projet CMake permet de reconnaître les bibliothèques C++ fournies par vcpkg. Il CMakePresets.json est uniquement destiné à être vérifié dans le contrôle de code source pendant CMakeUserPresets.json qu’il doit être utilisé localement.

6 - Générer et exécuter le projet

  1. Exécutez la commande du CMake: Build projet en accédant à la palette de commandes dans la palette de commandes d’affichage >

Commande de build CMake dans Visual Studio Code

Capture d’écran de la sélection de la commande de build CMake dans Visual Studio Code.

Sélectionnez la default présélection CMake. Cela active la chaîne d’outils vcpkg.

Sélection de la présélection dans la commande de build CMake dans Visual Studio Code

Capture d’écran de la sélection de la présélection dans la commande de build CMake dans Visual Studio Code.

  1. Lancer le projet

Exécutez le programme :

./build/HelloWorld.exe
./build/HelloWorld

La sortie suivante doit s'afficher :

Hello World!

Étapes suivantes

Pour en savoir plus sur vcpkg.json, consultez notre documentation de référence :