다음을 통해 공유


Visual Studio에서 Clang-Tidy 사용

Clang-Tidy를 지원하려면 Visual Studio 2019 버전 16.4 이상이 필요합니다. 이 버전에 대한 설명서를 보려면 이 문서의 Visual Studio 버전 선택기 컨트롤을 Visual Studio 2019 이상으로 설정하세요. 이 페이지의 목차 상단에 있습니다.

Code Analysis는 기본적으로 Clang 또는 MSVC 도구 집합을 사용하는지 여부에 관계없이 MSBuild 및 CMake 프로젝트 모두에 대해 Clang-Tidy를 지원합니다. Clang-Tidy 검사는 백그라운드 코드 분석의 일부로 실행할 수 있습니다. 편집기 내 경고(물결선)로 표시되고 오류 목록에 표시됩니다.

Clang-Tidy 지원은 Visual Studio 2019 버전 16.4 이상부터 사용할 수 있습니다. Visual Studio 설치 관리자에서 C++ 워크로드를 선택하면 자동으로 포함됩니다.

Clang-Tidy는 LLVM/clang-cl 도구 집합을 사용할 때 기본 분석 도구로, MSBuild와 CMake에서 모두 사용할 수 있습니다. MSVC 도구 집합을 사용할 때 표준 Code Analysis 환경과 함께 실행하거나 이를 대체하도록 구성할 수 있습니다. clang-cl 도구 집합을 사용하면 Microsoft Code Analysis를 사용할 수 없습니다.

Clang-Tidy는 컴파일에 성공한 후 실행됩니다. Clang-Tidy 결과를 얻으려면 소스 코드 오류를 해결해야 할 수 있습니다.

MSBuild

프로젝트 속성 창의 Code Analysis>일반 페이지에서 코드 분석과 빌드 모두의 일부로 실행되도록 Clang-Tidy를 구성할 수 있습니다. 도구를 구성하는 옵션은 Clang-Tidy 하위 메뉴에서 찾을 수 있습니다.

자세한 내용은 방법: C/C++ 프로젝트의 Code Analysis 속성 설정하기를 참조하세요.

CMake

CMake 프로젝트에서는 CMakeSettings.json 또는 CMakePresets.json에서 Clang-Tidy 검사를 구성할 수 있습니다.

Clang-Tidy는 다음 키를 인식합니다.

  • enableMicrosoftCodeAnalysis: Microsoft Code Analysis를 사용하도록 설정
  • enableClangTidyCodeAnalysis: Clang-Tidy 분석을 사용하도록 설정
  • clangTidyChecks: Clang-Tidy 구성. 활성화 또는 비활성화할 검사 목록을 쉼표로 구분하여 표시합니다. 선행 -은(는) 검사를 사용하지 않도록 설정합니다. 예를 들어, cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-intcert-oop58-cppgoogle-runtime-int를 사용하도록 설정하지만 cppcoreguidelines-no-malloc는 사용하지 않도록 설정합니다. Clang-Tidy 검사 목록은 Clang-Tidy 설명서를 참조하세요.

"사용" 옵션을 모두 지정하지 않으면 Visual Studio는 사용된 플랫폼 도구 집합과 일치하는 분석 도구를 선택합니다.

CMake 설정

Clang-Tidy 설정을 편집하려면 CMake 설정을 열고 CMake 프로젝트 설정 편집기에서 JSON 편집을 선택합니다. 위의 키를 사용하여 CMake 설정 JSON 파일에서 Clang-Tidy 사양을 작성할 수 있습니다.

예제 CMake 설정 구현은 다음과 같습니다.

{
  "configurations": [
  {
    "name": "x64-debug",
    "generator": "Ninja",
    ....
   "clangTidyChecks": "llvm-include-order, -modernize-use-override",
   "enableMicrosoftCodeAnalysis": true,
   "enableClangTidyCodeAnalysis": true
  }
  ]
}

CMake 사전 설정

vendor 개체를 통해 CMake 사전 설정에서 동일한 키를 사용할 수 있습니다.

예제 CMake 사전 설정 구현은 다음과 같습니다.

"configurePreset": [
{ "name": "base",
  ....
  "vendor": {
    "microsoft.com/VisualStudioSettings/CMake/1.0": {
      "clangTidyChecks": "llvm-include-order, -modernize-use-override",
      "enableMicrosoftCodeAnalysis": true,
      "enableClangTidyCodeAnalysis": true
      }
    }
}
]

경고 표시

Clang-Tidy를 실행하면 오류 목록에 경고가 표시되고 편집기 내 코드의 관련 섹션 아래에 물결선이 표시됩니다. Clang-Tidy 경고를 정렬하고 정리하려면 오류 목록 창의 범주 열을 사용합니다. 도구>옵션에서 Code Analysis 물결선 사용 안 함 설정을 전환하여 편집기 내 경고를 구성할 수 있습니다.

Clang-Tidy 구성

기본적으로 Clang-Tidy는 사용하도록 설정할 때 검사를 설정하지 않습니다. 명령줄 버전에서 검사 목록을 보려면 개발자 명령 프롬프트에서 clang-tidy -list-checks을(를) 실행합니다. Clang-Tidy가 Visual Studio 내에서 실행되는 검사를 구성할 수 있습니다. 프로젝트 속성 페이지 대화 상자에서 Code Analysis>코드 분석>Clang-Tidy 페이지를 엽니다. Clang-Tidy 검사 속성에서 실행할 검사를 입력합니다. 좋은 기본 집합은 clang-analyzer-*입니다. 이 속성 값은 도구의 --checks 인수에 제공됩니다. 사용자 지정 .clang-tidy 파일에 추가 구성을 포함할 수 있습니다. 자세한 내용은 LLVM.org의 Clang-Tidy 설명서를 참조하세요.

Clang-Tidy 도구 디렉터리

clang-tidy 실행 파일에 사용자 지정 규칙을 기본 제공하고 이를 Microsoft Visual Studio에서 실행하려면 Visual Studio에서 실행하는 실행 파일의 경로를 변경할 수 있습니다. 프로젝트 속성 페이지 대화 상자에서 Code Analysis>코드 분석>Clang-Tidy 페이지를 엽니다. 경로를 수동으로 입력하거나 Clang-Tidy 도구 디렉터리 속성 아래에서 경로를 찾아 선택합니다. 변경 내용이 저장되면 새 실행 파일이 사용되며 앱이 다시 컴파일됩니다.

참고 항목

MSBuild 프로젝트에 대한 Clang/LLVM 지원
CMake 프로젝트에 대한 Clang/LLVM 지원