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.
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ão | O que ignora e por quê |
|---|---|
*.o*.obj*.ko*.elf*.d | Arquivos 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*.pch | Headers 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.**.dylib | BibliotecasSã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*.hex | ExecutáveisSão os produtos da linkagem e as imagens HEX para microcontroladores. a.out também cai em *.out. |
*.dSYM/*.su*.idb*.pdb*.dwo | Informaçõ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.conf | Build 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*.exp | Subprodutos do linkerSão os arquivos de linkagem incremental do MSVC, os mapas do linker e os arquivos de exportação. |
Cuidados na prática
- O diretório de build (
build/) não está neste template. Se você usa build out-of-source, adicione você mesmo/build/. *.mod*corresponde a todas as extensões que começam com.mod, então, se você tem arquivos.modcom outra finalidade (por exemplo, arquivos de dados), crie uma exceção.- Se em um repositório de firmware for preciso guardar os
.hexde distribuição, inclua de novo só caminhos específicos como!release/*.hex.
Template 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
Origem dos templates: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0