{}const=>[]async()letfn</>var
Développement

🛠️ CMake sans douleur : configurez l'assemblage une fois et oubliez-le

CMake fait peur à beaucoup de gens, mais pas à vous. Voici un guide simple et clair pour configurer CMake pour C++ sans douleur ni magie. Mini-modèle, conseils, astuces, et tout cela accompagné de Kodik 🚀

К

Kodik

Auteur

2 min de lecture

Si vous avez écrit en C++, vous avez probablement rencontré CMake. Et peut-être que tu as eu un moment de désespoir quand tout ne va pas. CMake est un outil puissant, mais sa syntaxe et sa structure sont souvent douloureuses. Voyons comment configurer CMake une fois et correctementpour ne plus revenir au chaos 💡

🔰 Qu'est-ce que CMake ?

CMake est un système de génération de compilation. Il ne compile pas le code directement, mais crée des fichiers pour l'assemblage sous votre système : Makefile, Ninja, Xcode ou Visual Studio.

  • ✅ Fonctionne sur toutes les plateformes

  • ✅ Permet de configurer les dépendances

  • ✅ Simplifie l'assemblage de grands projets

  • ✅ Compatible avec IDE et CI/CD

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

🧱 Structure de base du projet avec CMake

project-root/
├── CMakeLists.txt
├── src/
│   └── main.cpp
├── include/
│   └── mylib.hpp
├── CMakeLists.txt (внутри src/)

📌 Racine CMakeLists.txt :

cmake_minimum_required(VERSION 3.15)
project(MyProject)

set(CMAKE_CXX_STANDARD 20)

add_subdirectory(src)

📌 src/CMakeLists.txt:

add_executable(my_app main.cpp)
target_include_directories(my_app PRIVATE ../include)

⚙️ Conseils pour configurer CMake sans douleur

1. Utilisez target_* au lieu de variables globales

❌ Mauvais :

include_directories(./include)

✅ Correct :

target_include_directories(my_app PRIVATE ./include)

2. Ajoutez compile_commands.json

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

Aide à l'autocomplétion et à la mise en évidence des erreurs dans VS Code et clangd.

3. Toujours utiliser out-of-source build

mkdir build && cd build
cmake ..
cmake --build .

4. Connectez correctement les bibliothèques tierces

Exemple avec FetchContent :

include(FetchContent)
FetchContent_Declare(
  json 
  URL https://github.com/nlohmann/json/releases/latest/download/json.hpp
)
FetchContent_MakeAvailable(json)

target_link_libraries(my_app PRIVATE nlohmann_json::nlohmann_json)

🧪 Liste de contrôle d'un bon projet CMake

  • ✅ CMakeLists.txt ne dépasse pas 30 lignes

  • ✅ Toutes les dépendances via target_*

  • ✅ Prise en charge Debug/Release

  • ✅ Assemblage hors source

  • ✅ Fonctionne dans le terminal et l'IDE

📚 Vous voulez approfondir le sujet ?
Dans l'application Code vous trouverez des leçons détaillées sur CMake et C++, des exercices étape par étape, des analyses d'erreurs et des exercices pratiques directement sur votre téléphone ou votre navigateur.
Et si vous voulez être au courant des nouveautés, des nouvelles fonctionnalités et des contenus utiles, abonnez-vous à notre Chaîne Telegram. C'est confortable, professionnel et avec amour pour le code ❤️

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte