github/gitignore · C.gitignore
C-.gitignore-Vorlage erklärt
Erklärt, warum C.gitignore Objektdateien, statische und gemeinsam genutzte Bibliotheken, ausführbare Dateien, Debuginformationen und Build-Dateien von Linux-Kernelmodulen ignoriert.
C.gitignore blockiert anhand der Dateiendung die Zwischendateien und Ergebnisse von Compiler und Linker. Endungen mehrerer Plattformen sind gemeinsam enthalten, damit die Vorlage für gcc, clang und MSVC gleichermaßen taugt.
Dateien von Build-Systemen wie Make oder CMake werden nicht behandelt. Wenn Sie CMake verwenden, ziehen Sie die CMake-Vorlage oder die C++-Vorlage heran, die CMake-Regeln enthält.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
*.o*.obj*.ko*.elf*.d | Objekt- und AbhängigkeitsdateienKompilierergebnisse pro Quelldatei (.o, .obj), Kernelmodule (.ko), ELF-Binärdateien und vom Compiler erzeugte Header-Abhängigkeitslisten (.d). |
*.gch*.pch | Vorkompilierte HeaderPrecompiled Header von GCC und MSVC. Sie sind an Compilerversion und -optionen gebunden und in einer anderen Umgebung nicht verwendbar. |
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylib | BibliothekenStatische Bibliotheken (.a, .lib), libtool-Dateien (.la, .lo) und gemeinsam genutzte Bibliotheken. *.so.* erfasst versionierte Namen wie libfoo.so.1.2. |
*.exe*.out*.app*.i*86*.x86_64*.hex | Ausführbare DateienLinker-Ergebnisse und HEX-Images für Mikrocontroller. Auch a.out wird von *.out erfasst. |
*.dSYM/*.su*.idb*.pdb*.dwo | DebuginformationenSymbol-Bundles von macOS, Ergebnisse von GCCs -fstack-usage (.su), MSVC-Debugdatenbanken und abgetrenntes DWARF (.dwo). |
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.conf | Build von Linux-KernelmodulenDateien, die das Kernel-Build-System (kbuild) beim Erstellen von Modulen hinterlässt. Wer keine Treiber entwickelt, begegnet ihnen kaum. |
*.ilk*.map*.exp | Linker-NebenprodukteDateien für inkrementelles Linken von MSVC, Linker-Maps und Exportdateien. |
Hinweise für die Praxis
- Das Build-Verzeichnis (
build/) ist in dieser Vorlage nicht enthalten. Bei Out-of-Source-Builds ergänzen Sie/build/selbst. *.mod*erfasst alle Endungen, die mit.modbeginnen. Haben Sie.mod-Dateien für andere Zwecke (z. B. Datendateien), legen Sie eine Ausnahme an.- Muss ein Firmware-Repository
.hex-Dateien für die Auslieferung aufbewahren, nehmen Sie nur einen bestimmten Pfad wieder auf, etwa!release/*.hex.
Originalvorlage
C.gitignore
# Prerequisites*.d# Object files*.o*.ko*.obj*.elf# Linker output*.ilk*.map*.exp# Precompiled Headers*.gch*.pch# Libraries*.lib*.a*.la*.lo# Shared objects (inc. Windows DLLs)*.dll*.so*.so.**.dylib# Executables*.exe*.out*.app*.i*86*.x86_64*.hex# Debug files*.dSYM/*.su*.idb*.pdb# Kernel Module Compile Results*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.conf# debug information files*.dwo
Vorlagenquelle: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0