C++-.gitignore-Vorlage erklärt
Erklärt, warum C++.gitignore Objekte, Bibliotheken und ausführbare Dateien, den CMake-Build-Baum, compile_commands.json und den vcpkg-Installationsordner ignoriert, und die Falle der Makefile-Regel.
C++.gitignore enthält ähnliche Regeln für Kompilierartefakte wie die C-Vorlage und zusätzlich den CMake-Build-Baum, CTest-Ergebnisse und den Installationsordner des vcpkg-Manifestmodus. Da die Fortran-Vorlage im Vorlagen-Repository direkt auf diese Datei verweist, sind auch Regeln für Fortran-Moduldateien (.mod, .smod) enthalten.
Die heikelste Zeile ist Makefile. Sie soll von CMake erzeugte Makefiles blockieren, ignoriert aber in Projekten, die mit einem handgeschriebenen Makefile gebaut werden, auch diese Datei.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
*.o*.obj*.slo*.lo*.d*.gch*.pch | Objekte und Header-CacheKompilierergebnisse pro Übersetzungseinheit, Abhängigkeitsdateien und vorkompilierte Header. Alles wird aus den Quellen neu erzeugt. |
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.app | Bibliotheken und ausführbare DateienLinker-Ergebnisse. Sie entstehen je nach Plattform unterschiedlich und werden über Releases verteilt, nicht über das Repository. |
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txt | CMake-Build-BaumCache und generierte Dateien, die CMake in der Konfigurationsphase erzeugt. CMakeCache.txt speichert den Compilerpfad Ihres Rechners und ist für andere nutzlos. |
Makefile | Generierte MakefilesBlockiert Makefiles, die der Unix-Makefiles-Generator von CMake im Quellbaum erzeugt. Ohne Schrägstrich wird jedes Makefile in jeder Tiefe ignoriert. |
compile_commands.jsonvcpkg_installed/Testing/.cache/ | Tool-ArtefakteKompilierdatenbank, die clangd und andere lesen, von vcpkg installierte Pakete, CTest-Ergebnisse und der Indexcache von clangd. Alles hängt von der lokalen Umgebung ab. |
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swp | Debuginformationen und temporäre DateienDebugsymbole, Dateien für inkrementelles Linken sowie temporäre und Sicherungsdateien von Editoren. |
*.mod*.smod | Fortran-ModuleModulschnittstellendateien, die der Fortran-Compiler erzeugt. Auf reine C++-Projekte hat die Regel keine Auswirkung. |
Hinweise für die Praxis
- Gibt es ein handgeschriebenes
Makefile, ergänzen Sie!/Makefileoder eine Ausnahmeregel für den betreffenden Pfad. Geben Sie den PfadMakefilein den Mustertester ein, sehen Sie das sofort. - Manche Teams teilen
compile_commands.jsonüber einen symbolischen Link im Stammverzeichnis. Dann löschen Sie diese Zeile. vcpkg.json(Manifest) undvcpkg-configuration.jsonwerden nicht ignoriert und sollten committet werden.- Wenn Sie CLion verwenden, blockiert die Regel
cmake-build-*/der JetBrains-Vorlage die Build-Ordner der IDE.
Originalvorlage
# 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/
Vorlagenquelle: github/gitignore/C++.gitignore @356fd7b (2026-09-11) · CC0-1.0