github/gitignore · C.gitignore

C .gitignore 템플릿 해설

C.gitignore가 오브젝트 파일, 정적·공유 라이브러리, 실행 파일, 디버그 정보, 리눅스 커널 모듈 빌드 파일을 무시하는 이유를 설명합니다.

생성기에서 열기 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.conf리눅스 커널 모듈 빌드커널 빌드 시스템(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

함께 쓰는 템플릿

다른 템플릿 해설