github/gitignore · C.gitignore
Plantilla .gitignore de C explicada
Explica por qué C.gitignore ignora archivos objeto, bibliotecas estáticas y compartidas, ejecutables, información de depuración y archivos de compilación de módulos del kernel de Linux.
C.gitignore bloquea por extensión los archivos intermedios y los resultados que generan el compilador y el enlazador. Incluye extensiones de varias plataformas para que sirva con gcc, clang o MSVC.
No trata los archivos de sistemas de compilación como Make o CMake. Si usas CMake, consulta la plantilla de CMake o la de C++, que incluye reglas de CMake.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
*.o*.obj*.ko*.elf*.d | Archivos objeto y de dependenciasSon los resultados de compilación de cada archivo fuente (.o, .obj), módulos del kernel (.ko), binarios ELF y las listas de dependencias de cabeceras que genera el compilador (.d). |
*.gch*.pch | Cabeceras precompiladasSon las precompiled headers de GCC y MSVC. Están ligadas a la versión y las opciones del compilador, así que no sirven en otro entorno. |
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylib | BibliotecasSon bibliotecas estáticas (.a, .lib), archivos de libtool (.la, .lo) y bibliotecas compartidas. *.so.* captura nombres con versión como libfoo.so.1.2. |
*.exe*.out*.app*.i*86*.x86_64*.hex | EjecutablesSon los productos del enlazado y las imágenes HEX para microcontroladores. a.out también cae en *.out. |
*.dSYM/*.su*.idb*.pdb*.dwo | Información de depuraciónSon los paquetes de símbolos de macOS, los resultados de -fstack-usage de GCC (.su), las bases de datos de depuración de MSVC y el DWARF separado (.dwo). |
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.conf | Compilación de módulos del kernel de LinuxSon archivos que deja el sistema de compilación del kernel (kbuild) al crear módulos. Si no desarrollas controladores, casi nunca los verás. |
*.ilk*.map*.exp | Subproductos del enlazadorSon los archivos de enlazado incremental de MSVC, los mapas del enlazador y los archivos de exportación. |
Precauciones en la práctica
- El directorio de compilación (
build/) no está en esta plantilla. Si usas compilación out-of-source, añade tú mismo/build/. *.mod*coincide con todas las extensiones que empiezan por.mod, así que si tienes archivos.modcon otro propósito (por ejemplo, archivos de datos), añade una excepción.- Si en un repositorio de firmware necesitas conservar los
.hexde distribución, vuelve a incluir solo rutas concretas como!release/*.hex.
Plantilla original
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
Origen de las plantillas: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0