github/gitignore · C++.gitignore

Template .gitignore do C++ explicado

Explica por que o C++.gitignore ignora objetos, bibliotecas e executáveis, a árvore de build do CMake, o compile_commands.json e a pasta de instalação do vcpkg, e a armadilha da regra Makefile.

Abrir no gerador Abrir junto com C, JetBrains, VisualStudioCode, VisualStudio

O C++.gitignore inclui, além de regras de artefatos de compilação parecidas com as do template de C, a árvore de build do CMake, os resultados do CTest e a pasta de instalação do modo manifesto do vcpkg. Como no repositório de templates o template de Fortran aponta diretamente para este arquivo, ele também contém regras para arquivos de módulo do Fortran (.mod, .smod).

A linha mais delicada é Makefile. É uma regra para bloquear os Makefiles gerados pelo CMake, mas, em um projeto que compila com um Makefile escrito à mão, esse arquivo também é ignorado.

Explicação regra por regra

PadrãoO que ignora e por quê
*.o*.obj*.slo*.lo*.d*.gch*.pchObjetos e cache de headersSão os resultados de compilação por unidade de tradução, os arquivos de dependências e os headers pré-compilados. Tudo é recriado a partir do código-fonte.
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.appBibliotecas e executáveisSão produtos da linkagem. São gerados de forma diferente em cada plataforma, então são distribuídos como release, não pelo repositório.
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txtÁrvore de build do CMakeSão o cache e os arquivos gerados que o CMake cria na etapa de configuração. O CMakeCache.txt guarda os caminhos do compilador do seu computador e não serve para mais ninguém.
MakefileMakefiles geradosBloqueia os Makefiles que o gerador Unix Makefiles do CMake cria dentro da árvore de código. Por não ter barra, Makefile é ignorado em qualquer profundidade.
compile_commands.jsonvcpkg_installed/Testing/.cache/Artefatos de ferramentasSão o banco de dados de compilação lido pelo clangd e outros, os pacotes instalados pelo vcpkg, os resultados do CTest e o cache de índice do clangd. Tudo depende do ambiente local.
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swpInformações de depuração e arquivos temporáriosSão símbolos de depuração, arquivos de linkagem incremental e arquivos temporários e de backup do editor.
*.mod*.smodMódulos do FortranSão os arquivos de interface de módulo gerados pelo compilador Fortran. Não afetam projetos de C++ puro.

Cuidados na prática

Template original

C++.gitignore39 linhas de regras
# Prerequisites*.d# Compiled Object files*.slo*.lo*.o*.obj# Precompiled Headers*.gch*.pch# Linker files*.ilk# Debugger Files*.pdb# Compiled Dynamic libraries*.so*.dylib*.dll*.so.*# Fortran module files*.mod*.smod# Compiled Static libraries*.lai*.la*.a*.lib# Executables*.exe*.out*.app# Build directoriesbuild/Build/build-*/# CMake generated filesCMakeFiles/CMakeCache.txtcmake_install.cmakeMakefileinstall_manifest.txtcompile_commands.json# Temporary files*.tmp*.log*.bak*.swp# vcpkgvcpkg_installed/# debug information files*.dwo# test output & cacheTesting/.cache/

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

Templates usados em conjunto

Outros templates explicados