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-int
는cert-oop58-cpp
및google-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 도구 디렉터리 속성 아래에서 경로를 찾아 선택합니다. 변경 내용이 저장되면 새 실행 파일이 사용되며 앱이 다시 컴파일됩니다.
추가 옵션 Clang-Tidy
Clang-Tidy 추가 옵션 속성을 사용하면 명령줄 옵션을 사용하여 Clang-Tidy 전달되는 추가 컴파일러 인수를 --extra-args
지정할 수 있습니다. 이러한 인수는 매크로 정의, 경로 포함 또는 언어 표준과 같은 Clang-Tidy 코드를 구문 분석하는 방법을 제어하는 데 사용할 수 있습니다. 인수를 세미콜론으로 구분된 목록으로 입력합니다. 예: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include
.
Clang-Tidy 추가 옵션 추가
Clang-Tidy 명령줄 옵션 추가 앞에 붙이기 속성을 사용하면 --extra-args-before
명령줄 옵션을 사용하여 Clang-Tidy에 전달할 컴파일러 인수를 지정할 수 있습니다. 이러한 인수는 Clang-Tidy 코드를 구문 분석할 때 기본 컴파일러 인수 앞에 삽입됩니다. 인수를 세미콜론으로 구분된 목록으로 입력합니다. 예: -std=c++20;-DMY_DEFINE=1;
.
최대 프로세스 수
최대 프로세스 수 속성을 사용하면 Clang-Tidy 병렬로 분석을 실행하는 데 사용할 수 있는 프로세스 수를 지정할 수 있습니다. 기본적으로 Clang-Tidy 직렬로 실행됩니다. 병렬 실행을 사용하도록 설정하고 병렬 프로세스 수를 지정하려면 이 속성을 설정합니다.
0
시스템에서 사용 가능한 모든 논리 프로세서를 사용하도록 설정합니다. 프로세스 수를 늘리면 다중 코어 컴퓨터의 분석 속도가 향상될 수 있습니다.