Comment bien config son LSP en C++ (clangd)
2026-02-20
Bienvenue enfin dans le merveilleux monde de C++ ✨
Pour autant, il s'agit d'un langage complexe où faire des erreurs de programmation est bien plus facile qu'en C.
Dans cet article, vous apprendrez à utiliser un LSP afin d'avoir un meilleur feedback lors de l'écriture de code C++. Plus précisément, comment installer et configurer clangd, un LSP populaire pour C++.
Nous utiliserons VSCode comme IDE, mais NeoVim et CLion marchent aussi.

L'installation
Si vous êtes sur Windows, je vous conseille d'utiliser WSL2. Pour cela, vous pouvez ouvrir PowerShell en mode admin, et faire
wsl --install -d Ubuntu-22.04(ou une autre distro Linux).
Pour cela, vous pouvez ouvrir un fichier .cc / .cpp dans VSCode, et il vous proposera d'installer clangd. Sur Windows, préférez ouvrir VSCode dans WSL2, et ouvrir un fichier .cc / .cpp à l'intérieur de WSL2.

Sinon vous pouvez aussi l'installer manuellement et bien penser à définir le path de clangd dans les settings de VSCode si besoin.
La configuration
Si vous utilisez l'exension C/C++ Microsoft, désactivez son intellisense et préférez celui de clangd.

Et that's it pour les programes single-file
Vous avez maintenant erreurs, warnings, type-hints … la fin du color-only programming 🔥

Mais qu'en est il pour les projets multi-file ? ou les projets de grande taille avec masse librairies ?
compiledb
clangd n'arrivera généralement pas à déduire les liens avec les autres fichiers locaux de lui même. Il pourra cependant lire le fichier compile_commands.json pour comprendre comment compiler votre projet, et ainsi faire le lien entre les différents fichiers.
Pour cela, nous utiliserons compiledb qui génèrera ce fichier à partir des logs des Makefile.
Installation de compiledb
- Installez
python3etpip3si ce n'est pas déjà fait, c'est à diresudo apt install python3 python3-pipsur Ubuntu. - Installez compiledb avec
pip3 install compiledb, soit globalement, soit dans un venv (mieux).
Génération du compile_commands.json
- Ajoutez
compiledbavant votre commande de make, par exemplecompiledb make. - clangd devrait détecter automatiquement le fichier
compile_commands.jsonet l'utiliser pour faire le lien entre les différents fichiers de votre projet.

Et that's it ! Vous êtes maintenant prêt à faire des projets de grande taille tels que des compilateurs 🐅
