위키득계정 ↗
기술

Compiledb

Compiledb기술
분류
컴파일 데이터베이스 생성기
주요 대상
GNU Make 기반 빌드
출력
compile_commands.json
입력 예
빌드 로그와 표준 입력
Compiledb는 GNU Make 기반 프로젝트의 빌드 명령을 해석해 컴파일 데이터베이스를 생성하는 도구다. 빌드 로그나 명령 출력에서 분석기에 필요한 컴파일 조건을 추출한다.

출력에서 명령 추출

빌드가 출력하는 컴파일 명령을 분석해 소스 파일과 인자, 작업 위치를 정리한다. 생성된 기록은 소스를 이해하는 도구가 헤더 경로와 매크로 등을 적용하는 데 쓰인다. 실제 빌드와 같은 조건을 나타내는 로그를 준비해야 한다.

실행과 해석 구분

Make를 감싸 실행하면서 데이터베이스를 만들 수 있으며 이 방식은 기본적으로 실제 빌드도 수행한다. 빌드를 하지 않는 옵션과 기존 로그를 읽는 방식도 있다. 명령을 표시하는 Make 실행과 실제 컴파일 실행을 구분해 사용한다.

구성별 관리

서로 다른 타깃이나 디버그 및 릴리스 구성을 섞으면 분석 결과가 실제 빌드와 달라질 수 있다. 컴파일러 명령을 숨기는 래퍼나 특수한 로그 형식도 확인한다. 데이터베이스에 필요한 파일이 들어 있는지 생성 후 점검한다.

관련 문서

Bear 컴파일 데이터베이스 / Clangd / Ccls / Clang-Tidy