github/gitignore · C++.gitignore

Modèle .gitignore C++ expliqué

Explique pourquoi C++.gitignore ignore les objets, bibliothèques et exécutables, l'arborescence de build CMake, compile_commands.json et le dossier d'installation de vcpkg, ainsi que le piège de la règle Makefile.

Ouvrir dans le générateur Ouvrir avec C, JetBrains, VisualStudioCode, VisualStudio

C++.gitignore reprend des règles d'artefacts de compilation proches du modèle C et y ajoute l'arborescence de build CMake, les résultats de CTest et le dossier d'installation du mode manifeste de vcpkg. Comme le modèle Fortran du dépôt de modèles pointe directement vers ce fichier, il contient aussi des règles pour les fichiers de modules Fortran (.mod, .smod).

La ligne la plus délicate est Makefile. Elle vise à bloquer les Makefile générés par CMake, mais dans un projet qui se construit avec un Makefile écrit à la main, ce fichier est lui aussi ignoré.

Explication règle par règle

MotifCe qui est ignoré et pourquoi
*.o*.obj*.slo*.lo*.d*.gch*.pchObjets et cache d'en-têtesRésultats de compilation par unité de traduction, fichiers de dépendances et en-têtes précompilés. Tous sont régénérés à partir des sources.
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.appBibliothèques et exécutablesRésultats de l'édition de liens. Ils sont produits différemment selon la plateforme et se distribuent via des releases, pas via le dépôt.
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txtArborescence de build CMakeCache et fichiers générés par CMake lors de l'étape de configuration. CMakeCache.txt enregistre le chemin du compilateur de votre machine et ne sert à rien aux autres.
MakefileMakefile générésBloque les Makefile créés dans l'arborescence des sources par le générateur Unix Makefiles de CMake. Sans barre oblique, tout Makefile à toute profondeur est ignoré.
compile_commands.jsonvcpkg_installed/Testing/.cache/Artefacts d'outilsBase de données de compilation lue par clangd et d'autres, paquets installés par vcpkg, résultats de CTest et cache d'index de clangd. Tout dépend de l'environnement local.
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swpInformations de débogage et fichiers temporairesSymboles de débogage, fichiers de liaison incrémentale, fichiers temporaires et de sauvegarde des éditeurs.
*.mod*.smodModules FortranFichiers d'interface de modules créés par le compilateur Fortran. Sans effet sur un projet purement C++.

Points d'attention en pratique

Modèle d'origine

C++.gitignore39 règles
# Prerequisites*.d# Compiled Object files*.slo*.lo*.o*.obj# Precompiled Headers*.gch*.pch# Linker files*.ilk# Debugger Files*.pdb# Compiled Dynamic libraries*.so*.dylib*.dll*.so.*# Fortran module files*.mod*.smod# Compiled Static libraries*.lai*.la*.a*.lib# Executables*.exe*.out*.app# Build directoriesbuild/Build/build-*/# CMake generated filesCMakeFiles/CMakeCache.txtcmake_install.cmakeMakefileinstall_manifest.txtcompile_commands.json# Temporary files*.tmp*.log*.bak*.swp# vcpkgvcpkg_installed/# debug information files*.dwo# test output & cacheTesting/.cache/

Source des modèles : github/gitignore/C++.gitignore @356fd7b (2026-09-11) · CC0-1.0

Modèles utilisés ensemble

Autres modèles expliqués