github/gitignore · C.gitignore

Разбор шаблона .gitignore для C

Почему C.gitignore игнорирует объектные файлы, статические и разделяемые библиотеки, исполняемые файлы, отладочную информацию и файлы сборки модулей ядра Linux.

Открыть в генераторе Открыть вместе с C++, VisualStudioCode, Linux, Vim

C.gitignore блокирует по расширениям промежуточные файлы и результаты, которые создают компилятор и компоновщик. Чтобы его можно было использовать с gcc, clang и MSVC, в нём собраны расширения нескольких платформ.

Файлы систем сборки вроде Make или CMake он не охватывает. Если вы используете CMake, обратитесь к шаблону CMake или к шаблону C++, в котором есть правила для CMake.

Разбор правил

ШаблонЧто и почему игнорируется
*.o*.obj*.ko*.elf*.dОбъектные файлы и файлы зависимостейРезультаты компиляции каждого исходного файла (.o, .obj), модули ядра (.ko), ELF-бинарники и списки зависимостей от заголовков (.d), которые создаёт компилятор.
*.gch*.pchПредкомпилированные заголовкиPrecompiled header в GCC и MSVC. Они привязаны к версии компилятора и параметрам, поэтому в другом окружении непригодны.
*.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.confСборка модулей ядра LinuxФайлы, которые система сборки ядра (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

Шаблоны, используемые вместе

Разборы других шаблонов