Installer un compilateur C et C++ sur Windows, Linux et macOS
Apprenez à installer GCC avec MSYS2 sur Windows, build-essential sur Linux et Xcode sur macOS, ainsi que la configuration de VS Code.

Sur cette page
Le compilateur transforme le code source en un programme exécutable. Pour le C et le C++, les deux plus utilisés sont : GCC, présent depuis 1987 et disponible partout, et Clang, plus récent, avec des messages d’erreur plus clairs et installé par défaut sur macOS. La dernière version de GCC est la 16, sortie en avril 2026, qui utilise par défaut le standard C++20 pour le C++.
Vous trouverez ci-dessous l’installation pour les trois systèmes, les commandes pour compiler et la configuration de Visual Studio Code.
Windows : MSYS2 et MinGW-w64 #
MinGW-w64 est la version de GCC qui produit des exécutables natifs pour Windows. MSYS2 est l’environnement qui le distribue et le maintient à jour.
Téléchargez le programme d’installation sur le site officiel de MSYS2 et installez-le en laissant le chemin par défaut
C:\msys64.Une fois terminé, un terminal MSYS2 s’ouvre. Mettez à jour les paquets de base :
pacman -SyuSi la fenêtre se ferme pendant la mise à jour, ne vous inquiétez pas : rouvrez-la via le menu Démarrer (MSYS2 UCRT64) et répétez la commande jusqu’à ce qu’il n’y ait plus rien à mettre à jour.
Installez le groupe d’outils de compilation 64 bits :
pacman -S mingw-w64-ucrt-x86_64-toolchainLorsqu’on vous demande quels paquets installer, appuyez sur Entrée pour tous les prendre, puis confirmez avec Y. Si vous avez aussi besoin du debugger, il est déjà inclus :
gdbil fait partie du groupe.Ajoutez le dossier des compilateurs au PATH de Windows afin de pouvoir les utiliser depuis n’importe quel terminal. Recherchez Modifier les variables d’environnement système dans le menu Démarrer (ou allez dans Paramètres → Système → À propos → Paramètres avancés du système), cliquez sur Variables d’environnement, sélectionnez
Pathparmi les variables utilisateur, puis Modifier → Nouveau et écrivez :C:\msys64\ucrt64\binConfirmez avec OK dans toutes les fenêtres, ouvrez un nouveau Invite de commandes et vérifiez :
gcc --version g++ --version

wsl --install et suivez la partie Linux ci-dessous.Linux #
Sur Debian, Ubuntu et leurs dérivées, tout ce dont vous avez besoin se trouve dans un seul paquet :
sudo apt update
sudo apt install build-essential gdb
On y trouve GCC, G++, make et les bibliothèques de développement. Sur Fedora :
sudo dnf install gcc gcc-c++ make gdb
Sur Arch Linux :
sudo pacman -S base-devel gdb
Vérifiez avec gcc --version. Rien d’autre n’est nécessaire : les chemins sont déjà configurés.
macOS #
Sur Mac, le compilateur par défaut est Clang, qui est fourni avec les outils en ligne de commande d’Xcode. Installez-les avec cette commande, qui ouvre une fenêtre de confirmation :
xcode-select --install
À partir de là, les commandes gcc et g++ existent, mais elles lancent en réalité Clang. Pour l’apprentissage, cela ne change rien.
Si vous avez absolument besoin de GCC, par exemple pour un projet qui l’exige, installez-le avec Homebrew :
brew install gcc
Les commandes s’appelleront gcc-16 et g++-16, suivies du numéro de version, afin de ne pas entrer en conflit avec celles du système.
Compiler depuis le terminal #
Les commandes sont les mêmes partout, seul le nom du fichier produit change.
Compiler un fichier C unique :
gcc programma.c -o programma
Compiler du C++, en demandant un standard récent et tous les avertissements :
g++ -std=c++20 -Wall -Wextra programma.cpp -o programma
Exécuter le résultat :
./programma
Sur Windows, depuis l’Invite de commandes, l’exécutable s’appelle programma.exe et se lance en tapant programma.

Les options à connaître dès le début :
| Option | Rôle |
|---|---|
-Wall -Wextra | Affiche les avertissements : ils interceptent les erreurs que le compilateur accepterait silencieusement |
-g | Inclut les informations de débogage, nécessaires pour utiliser le debugger |
-O2 | Optimise le code ; à utiliser pour la version finale, pas pendant le développement |
-std=c++20 | Fixe le standard du langage, évitant ainsi les surprises entre différents ordinateurs |
Makefile ou utilisez CMake. Recompiler tout à chaque modification fait perdre du temps, et tôt ou tard, on oublie un fichier et on passe une demi-heure sur une erreur qui n’existe pas.Configurer Visual Studio Code #
Visual Studio Code ne possède pas son propre compilateur : il utilise celui que vous avez installé. Deux étapes suffisent.
Installez l’extension C/C++ de Microsoft depuis le panneau des extensions. Alternativement, il existe clangd, plus rapide pour l’autocomplétion et les avertissements.
Ouvrez le dossier du projet et créez un fichier source. Appuyez sur F5 : lors de la première exécution, l’éditeur vous demandera quel compilateur utiliser et générera automatiquement les fichiers
tasks.jsonetlaunch.jsondans le sous-dossier.vscode.
Si le compilateur n’apparaît pas dans la liste, sur Windows, le coupable est généralement le PATH. Vérifiez que gcc --version fonctionne dans un nouveau terminal, puis fermez et redémarrez complètement l’éditeur : il ne lit les variables d’environnement qu’au démarrage.

Pour compiler sans le débogueur, le terminal intégré (Ctrl + ò) accepte les mêmes commandes que celles vues précédemment.
Erreurs fréquentes #
gcc non è riconosciuto come comando sur Windows : le dossier bin n’est pas dans la variable PATH, ou bien le terminal était déjà ouvert lorsque vous l’avez ajouté.
fatal error: iostream: No such file or directory: vous compilez un fichier C++ avec gcc au lieu de g++.
Vous avez deux versions de GCC différentes : si l’ancienne version de C:\MinGW\bin est toujours présente dans le PATH, supprimez cette ligne, sinon Windows pourrait utiliser la version obsolète en priorité. where gcc vous indique laquelle est utilisée.
undefined reference to ...: la compilation a réussi mais il manque le lien vers une bibliothèque ou un autre fichier source. Lorsque plusieurs fichiers sont impliqués, ils doivent tous être indiqués, ou alors utilisez un système de build.
L’exécutable ne se lance pas sur un autre ordinateur Windows : les bibliothèques de runtime sont manquantes. Cela se résout en compilant avec -static, qui les inclut dans l’exécutable.
Foire aux questions #
MinGW et MSYS2 sont-ils la même chose ? #
Non. MinGW-w64 est l’ensemble d’outils qui permet à GCC de produire des programmes pour Windows ; MSYS2 est l’environnement qui les distribue, les met à jour et fournit un terminal de style Unix. Aujourd’hui, on installe MSYS2 précisément pour obtenir une version à jour de MinGW-w64.
GCC ou Clang : lequel choisir ? #
Pour apprendre, les deux conviennent. Clang est celui installé par défaut sur macOS et propose des messages d’erreur plus clairs, ce qui aide énormément au début. GCC est le standard sur Linux et vous le trouverez plus souvent dans les projets existants. De nombreux développeurs utilisent les deux : compiler avec deux compilateurs différents permet de faire ressortir des erreurs qu’un seul laisserait passer.
Puis-je encore utiliser l’ancien MinGW de SourceForge ? #
Il fonctionne, mais il n’est plus mis à jour depuis des années, ne crée que des programmes 32 bits et est en retard sur les standards récents du C++. Si vous l’avez déjà installé, désinstallez-le, retirez C:\MinGW\bin du PATH et passez à MSYS2.
Puis-je compiler des programmes Windows depuis Linux ? #
Oui, en installant la version cross-compilation de MinGW-w64, disponible sous forme de paquet dans les principales distributions. On compile avec x86_64-w64-mingw32-gcc pour obtenir un .exe fonctionnel, ce qui est très utile pour distribuer un programme sans posséder d’ordinateur Windows.
Faut-il utiliser Visual Studio à la place de Visual Studio Code ? #
Ce sont deux choses différentes. Visual Studio est un environnement de développement complet avec son propre compilateur Microsoft (MSVC), tandis que Visual Studio Code est un éditeur qui utilise le compilateur que vous lui fournissez. Pour apprendre le C et le C++, l’éditeur avec GCC suffit amplement et il est beaucoup plus léger.
Comment installer un débogueur ? #
Sur Linux et avec MSYS2, on installe gdb en même temps que le compilateur, comme illustré précédemment. Sur macOS, on utilise lldb, déjà inclus dans les outils Xcode. Dans les deux cas, Visual Studio Code le reconnaît automatiquement lors de la génération de la configuration de lancement.

