QDoc용 Clang 설치하기

QDoc은 \fn 명령의 함수 시그니처뿐만 아니라 C++ 파일을 구문 분석할 때 Clang을 사용합니다. Clang은 LLVM 컴파일러 인프라 프로젝트의 일부입니다. 소스에서 QDoc을 빌드하려면 Clang 17.0 이상을 설치해야 합니다.

설치 옵션

Qt는 공식적으로 지원되는 사전 빌드된 LLVM/Clang 패키지를 제공하며, 이 패키지는 Qt의 공식 빌드에 테스트 및 사용됩니다:

참고: Windows에서 Qt의 사전 빌드된 패키지는 릴리스 빌드만 지원합니다.

시스템 패키지 관리자

Qt의 사전 빌드된 패키지의 대안으로 시스템 패키지 관리자를 통해 Clang을 설치할 수 있습니다. QDoc에는 특히 Clang 컴파일러 라이브러리와 해당 CMake 구성 파일이 필요합니다. 종속성은 다음과 같습니다:

  • llvm-<version> (인프라)
  • clang-<version> (컴파일러 및 라이브러리)
  • libclang-<version>-dev (개발 헤더)
  • libclang-cpp<version>-dev (C++ API 개발 파일)

다음은 널리 사용되는 Linux 배포판 및 macOS에서 패키지 관리자의 일반적인 호출 목록입니다.

Linux

LLVM과 Clang은 대부분의 배포판에서 별도의 패키지입니다. ClangConfig.cmake 파일을 제공하는 (버전이 있는) -dev 패키지를 설치해야 합니다.

  • 데비안/우분투: apt install libclang-dev clang libclang-cpp-dev
  • Fedora/RHEL: dnf install clang-devel
  • Arch Linux: pacman -S clang llvm

macOS

Homebrew의 llvm 공식을 사용합니다:

  • brew install llvm
  • ARM64 Mac의 경우: 다음을 사용하여 구성합니다. LLVM_INSTALL_DIR="/opt/homebrew/opt/llvm"
  • Intel Mac의 경우: 다음을 사용하여 구성합니다. LLVM_INSTALL_DIR="/usr/local/opt/llvm"

참고: Qt의 빌드 시스템은 CMake가 ClangConfig.cmake를 찾도록 지시합니다. 패키지 설치가 이 파일을 제공하는지 확인하십시오. https://releases.llvm.org/download.html 에서 미리 빌드된 바이너리는 QDoc에 필요한 특정 구성 요소가 누락되어 있으므로 사용할 수 없습니다.

구성

Qt의 구성 스크립트가 LLVM/Clang 라이브러리를 찾을 수 없는 경우, 플랫폼별 설치 안내와 시스템에 필요한 정확한 구성 명령어를 표시합니다.

사용자 지정 LLVM 설치 위치를 수동으로 지정하려면 다음과 같이 하세요:

  • LLVM_INSTALL_DIR 변수를 설정합니다: configure LLVM_INSTALL_DIR="/path/to/llvm" FEATURE_clang=ON
  • 또는 CMAKE_PREFIX_PATH 에 추가합니다: configure CMAKE_PREFIX_PATH="/path/to/llvm" FEATURE_clang=ON

LLVM/Clang 라이브러리를 설치한 후에는 항상 FEATURE_clang=ON 으로 재구성하여 QDoc 컴파일을 활성화하세요.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.