위키득계정 ↗
기술

Clangd

Clangd기술
분류
언어 서버
기반
Clang과 LLVM
구성 자료
컴파일 명령 데이터베이스
활용
코드 편집과 탐색
Clangd는 Clang을 기반으로 C와 C플러스플러스 코드의 편집 기능을 제공하는 언어 서버다. 편집기와 연결해 자동 완성, 진단과 정의 이동 등을 지원한다.

소스 해석의 조건

소스 파일을 이해하려면 텍스트 외에도 언어 표준과 헤더 탐색 경로, 매크로 및 대상 플랫폼 정보가 필요하다. Clangd는 파일마다 가상의 컴파일 명령을 구성해 파서에 적용한다. 설정이 어긋나면 정상 코드에도 잘못된 오류가 표시될 수 있다.

컴파일 명령 찾기

일반적으로 compile_commands.json에서 파일별 조건을 얻는다. 간단한 프로젝트에서는 공통 플래그 파일을 사용할 수도 있다. 언어 서버를 시작할 때 주는 실행 옵션과 분석 대상 파일의 컴파일 플래그는 서로 다른 설정이다.

헤더와 추정 명령

빌드 시스템은 보통 헤더를 직접 컴파일하지 않아 헤더용 명령이 없을 수 있다. Clangd는 포함한 소스의 명령이나 파일 이름을 바탕으로 조건을 추정한다. 이 추정은 틀릴 수 있으므로 헤더에서만 문제가 생기면 적용된 명령을 확인한다.

관련 문서

Ccls / Clang / Compiledb / Bear 컴파일 데이터베이스