github/gitignore · C.gitignore

Template .gitignore do C explicado

Explica por que o C.gitignore ignora arquivos objeto, bibliotecas estáticas e compartilhadas, executáveis, informações de depuração e arquivos de build de módulos do kernel Linux.

Abrir no gerador Abrir junto com C++, VisualStudioCode, Linux, Vim

O C.gitignore bloqueia por extensão os arquivos intermediários e os resultados gerados pelo compilador e pelo linker. Inclui extensões de várias plataformas para servir com gcc, clang ou MSVC.

Não trata de arquivos de sistemas de build como Make ou CMake. Se você usa CMake, consulte o template do CMake ou o do C++, que inclui regras de CMake.

Explicação regra por regra

PadrãoO que ignora e por quê
*.o*.obj*.ko*.elf*.dArquivos objeto e de dependênciasSão os resultados de compilação de cada arquivo-fonte (.o, .obj), módulos do kernel (.ko), binários ELF e as listas de dependências de headers geradas pelo compilador (.d).
*.gch*.pchHeaders pré-compiladosSão os precompiled headers do GCC e do MSVC. Estão atrelados à versão e às opções do compilador, então não servem em outro ambiente.
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylibBibliotecasSão bibliotecas estáticas (.a, .lib), arquivos do libtool (.la, .lo) e bibliotecas compartilhadas. *.so.* pega nomes com versão como libfoo.so.1.2.
*.exe*.out*.app*.i*86*.x86_64*.hexExecutáveisSão os produtos da linkagem e as imagens HEX para microcontroladores. a.out também cai em *.out.
*.dSYM/*.su*.idb*.pdb*.dwoInformações de depuraçãoSão os bundles de símbolos do macOS, os resultados de -fstack-usage do GCC (.su), os bancos de dados de depuração do MSVC e o DWARF separado (.dwo).
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.confBuild de módulos do kernel LinuxSão arquivos deixados pelo sistema de build do kernel (kbuild) ao criar módulos. Se você não desenvolve drivers, quase nunca vai encontrá-los.
*.ilk*.map*.expSubprodutos do linkerSão os arquivos de linkagem incremental do MSVC, os mapas do linker e os arquivos de exportação.

Cuidados na prática

Template original

C.gitignore36 linhas de regras
# 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

Origem dos templates: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0

Templates usados em conjunto

Outros templates explicados