github/gitignore · C.gitignore
Penjelasan template .gitignore C
Menjelaskan mengapa C.gitignore mengabaikan file objek, pustaka statis dan bersama, file eksekusi, informasi debug, dan file build modul kernel Linux.
C.gitignore memblokir file perantara dan hasil yang dibuat compiler dan linker berdasarkan ekstensinya. Agar bisa dipakai dengan gcc, clang, maupun MSVC, ekstensi dari berbagai platform dimasukkan bersama.
File sistem build seperti Make atau CMake tidak ditangani. Jika memakai CMake, lihat template CMake atau template C++ yang berisi aturan CMake.
Penjelasan per aturan
| Pola | Apa yang diabaikan dan mengapa |
|---|---|
*.o*.obj*.ko*.elf*.d | File objek dan dependensiHasil kompilasi untuk setiap file sumber (.o, .obj), modul kernel (.ko), biner ELF, dan daftar dependensi header (.d) yang dibuat compiler. |
*.gch*.pch | Header yang dikompilasi sebelumnyaPrecompiled header GCC dan MSVC. Terikat pada versi dan opsi compiler sehingga tidak bisa dipakai di lingkungan lain. |
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylib | PustakaPustaka statis (.a, .lib), file libtool (.la, .lo), dan pustaka bersama. *.so.* menangkap nama berversi seperti libfoo.so.1.2. |
*.exe*.out*.app*.i*86*.x86_64*.hex | File eksekusiHasil linking dan image HEX untuk mikrokontroler. a.out juga tertangkap oleh *.out. |
*.dSYM/*.su*.idb*.pdb*.dwo | Informasi debugBundel simbol macOS, hasil GCC -fstack-usage (.su), basis data debug MSVC, dan DWARF terpisah (.dwo). |
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.conf | Build modul kernel LinuxFile yang ditinggalkan sistem build kernel (kbuild) saat membuat modul. Jika tidak mengembangkan driver, hampir tidak akan ditemui. |
*.ilk*.map*.exp | Produk sampingan linkerFile incremental link MSVC, peta linker, dan file ekspor. |
Hal yang perlu diperhatikan dalam praktik
- Direktori build (
build/) tidak ada di template ini. Jika memakai build out-of-source, tambahkan/build/sendiri. *.mod*menangkap semua ekstensi yang diawali.mod, jadi jika ada file.moduntuk keperluan lain (misalnya file data), beri pengecualian.- Jika repositori firmware perlu menyimpan
.hexuntuk distribusi, sertakan kembali hanya path tertentu seperti!release/*.hex.
Template asli
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
Sumber template: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0