github/gitignore · C.gitignore

C .gitignore 模板详解

说明 C.gitignore 忽略目标文件、静态与共享库、可执行文件、调试信息以及 Linux 内核模块构建文件的原因。

在生成器中打开 与 C++, VisualStudioCode, Linux, Vim 一起打开

C.gitignore 按扩展名拦截编译器和链接器生成的中间文件与产物。为了让 gcc、clang、MSVC 都能使用,其中同时包含多个平台的扩展名。

它不处理 Make、CMake 等构建系统的文件。如果使用 CMake,请参考 CMake 模板,或包含 CMake 规则的 C++ 模板。

逐条规则详解

模式忽略什么,为什么忽略
*.o*.obj*.ko*.elf*.d目标文件与依赖文件每个源文件生成的编译结果(.o.obj)、内核模块(.ko)、ELF 二进制文件,以及编译器生成的头文件依赖列表(.d)。
*.gch*.pch预编译头GCC 和 MSVC 的 precompiled header。它们与编译器版本和选项绑定,无法在其他环境中使用。
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylib静态库(.a.lib)、libtool 文件(.la.lo)以及共享库。*.so.* 用于匹配 libfoo.so.1.2 这类带版本号的名称。
*.exe*.out*.app*.i*86*.x86_64*.hex可执行文件链接产物以及用于微控制器的 HEX 镜像。a.out 也会被 *.out 匹配。
*.dSYM/*.su*.idb*.pdb*.dwo调试信息macOS 符号包、GCC -fstack-usage 的结果(.su)、MSVC 调试数据库,以及拆分出的 DWARF(.dwo)。
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.confLinux 内核模块构建内核构建系统(kbuild)生成模块时留下的文件。如果不开发驱动,几乎不会遇到。
*.ilk*.map*.exp链接器副产物MSVC 增量链接文件、链接器映射文件和导出文件。

实践中的注意事项

原始模板

C.gitignore规则 36 行
# 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

模板来源: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0

常搭配使用的模板

其他模板详解