C/C++ 개발 도구 모음 (Nick Desaulniers)

Source

  • Evernote/Inbox/Additional CC++ Tooling - Nick Desaulniers.md

Summary

이 문서는 C/C++ 프로젝트의 빌드, 코드 스타일, 정적/동적 분석, 컴파일 최적화를 위한 오픈소스 CLI 도구들을 소개합니다. 주요 도구로는 크로스플랫폼 빌드를 위한 CMake, 코드 포맷팅을 위한 ClangFormat, 린팅을 위한 Flint++, 정적 분석을 위한 Scan-build, 런타임 오류 감지를 위한 ASan/UBSan, 헤더 의존성 관리를 위한 IWYU, 그리고 재컴파일 속도 향상을 위한 ccache 가 포함됩니다. 이 도구들은 오픈소스 기여 및 코드 품질 향상에 유용합니다.

Key Points

  • CMake: 크로스플랫폼 빌드(Makefile, Xcode, VS 등) 및 의존성 관리에 유용하나 문법이 복잡할 수 있음.
  • ClangFormat: 코드 스타일 논쟁을 줄이고 일관된 포맷팅을 자동화하며 .clang-format 파일로 설정 관리 가능.
  • Flint/Flint++: Facebook 에서 사용하던 C++ 린터로, 개별 파일 단위의 잠재적 이슈를 빠르게 발견 가능.
  • Scan-build: Clang 기반 정적 분석기로, 빌드 시 실행하여 널 포인터 역참조 등 버그를 컴파일 타임에 감지하고 HTML 리포트 제공.
  • ASan/UBSan: Clang/GCC 의 런타임 산итай저로, 주소 오류 및 정의되지 않은 동작을 실행 시 감지 (성능 오버헤드 존재).
  • Include What You Use (IWYU): 불필요한 include 지시문 제거 및 포워딩 선언 권장하여 컴파일 시간 단축.
  • ccache: 컴파일 결과 캐싱을 통해 재컴파일 시간을 대폭 단축.