CMake pour C++ : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à CMake : qu'est-ce que c'est et pourquoi l'utiliser

\n\n

CMake (Cross-Platform Make) est un puissant système d'automatisation de construction de logiciels open source et multiplateforme. Contrairement aux Makefile traditionnels, CMake ne construit pas le projet directement, mais génère des fichiers de construction pour les outils natifs (Make, Ninja, Visual Studio, Xcode) à partir de fichiers de configuration simples CMakeLists.txt.

\n\n

Pourquoi utiliser CMake ?

\n
    \n
  • Multiplateforme : Un même code peut être compilé sur Windows, Linux et macOS sans modification de la configuration.
  • \n
  • Gestion des dépendances : Prise en charge intégrée de la recherche et de la connexion de bibliothèques externes (Boost, OpenCV, Qt, etc.).
  • \n
  • Flexibilité : Prise en charge de différents générateurs de projets (Visual Studio, Xcode, Ninja, Unix Makefiles).
  • \n
  • Modularité : Possibilité de créer des bibliothèques (statiques et dynamiques), des exécutables et des tests.
  • \n
  • Intégration avec les IDE : Les IDE modernes (CLion, VS Code, Qt Creator) ont une prise en charge intégrée de CMake.
  • \n
\n\n

CMake est devenu le standard de facto pour les projets C++. Il est utilisé par des géants comme Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang et bien d'autres.

\n\n

Installation de CMake

\n\n

Contrairement aux bibliothèques Python, CMake ne s'installe pas via pip. C'est une application autonome. Voyons l'installation pour les principaux systèmes d'exploitation :

\n\n

Windows

\n
    \n
  1. Téléchargez l'installateur depuis le site officiel (choisissez la version pour Windows — .msi ou .zip).
  2. \n
  3. Lancez l'installation. Cochez impérativement l'option "Add CMake to the system PATH for all users".
  4. \n
  5. Après l'installation, vérifiez : cmake --version dans l'invite de commande.
  6. \n
\n\n

Linux (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install cmake\ncmake --version
\n\n

macOS (Homebrew)

\n
brew install cmake\ncmake --version
\n\n

Vérification de l'installation

\n

Après l'installation, exécutez dans le terminal :

\n
cmake --version\n# La sortie doit ressembler à :\n# cmake version 3.27.0
\n\n

Démarrage rapide : premier projet avec CMake

\n\n

Créons un projet simple "Hello World" en utilisant CMake.

\n\n

Structure du projet

\n
my_project/\n├── CMakeLists.txt\n└── main.cpp
\n\n

Fichier main.cpp

\n
#include <iostream>\n\nint main() {\n    std::cout << "Hello, CMake!" << std::endl;\n    return 0;\n}
\n\n

Fichier CMakeLists.txt

\n
cmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)
\n\n

Construction du projet

\n
mkdir build\ncd build\ncmake ..\ncmake --build .\n./hello
\n\n

Explication :

\n
    \n
  • cmake_minimum_required — définit la version minimale de CMake.
  • \n
  • project — définit le nom du projet et le langage (CXX pour C++).
  • \n
  • add_executable — crée un fichier exécutable à partir des sources.
  • \n
\n\n

Méthodes et fonctions principales de CMake

\n\n

1. cmake_minimum_required()

\n

Description : Définit la version minimale de CMake nécessaire pour construire le projet. Si la version de CMake est inférieure à celle spécifiée, une erreur sera générée.

\n

Paramètres :

\n
    \n
  • VERSION — version au format major.minor[.patch[.tweak]]
  • \n
  • FATAL_ERROR — optionnel, provoque une erreur fatale en cas de non-conformité de version
  • \n
\n

Exemple :

\n
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
\n\n

2. project()

\n

Description : Définit le nom du projet et ses paramètres. Doit

Recommendations