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.

Abrir en el generador Abrir junto con C++, VisualStudioCode, Linux, Vim

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ónQué ignora y por qué
*.o*.obj*.ko*.elf*.dArchivos 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*.pchCabeceras 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.**.dylibBibliotecasSon 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*.hexEjecutablesSon los productos del enlazado y las imágenes HEX para microcontroladores. a.out también cae en *.out.
*.dSYM/*.su*.idb*.pdb*.dwoInformació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.confCompilació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*.expSubproductos del enlazadorSon los archivos de enlazado incremental de MSVC, los mapas del enlazador y los archivos de exportación.

Precauciones en la práctica

Plantilla original

C.gitignore36 líneas de reglas
# 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

Plantillas que suelen usarse juntas

Otras plantillas explicadas