Share via


Visual Studio 프로젝트의 Clang/LLVM 지원

CMake 및 MSBuild 프로젝트 모두에 대한 Clang/LLVM 지원은 Visual Studio 2019 및 Visual Studio 2022에서 사용할 수 있습니다.

Clang/LLVM과 함께 Visual Studio 2019 버전 16.2 이상을 사용하여 Windows 또는 Linux를 대상으로 하는 C++ Visual Studio 프로젝트(MSBuild)를 편집, 빌드, 디버그할 수 있습니다.

설치

Visual Studio에서 최상으로 IDE를 지원하려면 Windows용 최신 Clang 컴파일러 도구를 사용하는 것이 좋습니다. 도구가 아직 없는 경우 Visual Studio 설치 관리자를 열고 C++를 사용한 데스크톱 개발 선택적 구성 요소 아래에서 Windows용 C++ Clang 도구를 선택하여 설치할 수 있습니다. 머신에서 기존 Clang 설치를 사용할 수 있으며 그렇게 하려면 v142 빌드 도구용 C++ Clang-cl 또는 v143 빌드 도구용 C++ Clang-cl을 선택하세요.

설치

Visual Studio에서 최상으로 IDE를 지원하려면 Windows용 최신 Clang 컴파일러 도구를 사용하는 것이 좋습니다. 도구가 아직 없는 경우 Visual Studio 설치 관리자를 열고 C++를 사용한 데스크톱 개발 선택적 구성 요소 아래에서 Windows용 C++ Clang 도구를 선택하여 설치할 수 있습니다. 컴퓨터에서 기존 Clang 설치를 사용할 수 있으며 그렇게 하려면 LLVM(clang-cl) 도구 집합에 대한 MSBuild 지원을 선택하세요.

Microsoft C++ 표준 라이브러리에는 Clang 8.0.0 이상이 필요합니다.

Visual Studio 2019 설치 프로그램 스크린샷

설치 프로그램에서 개별 구성 요소 탭이 선택되어 있습니다. Windows용 C++ Clang 컴파일러가 선택되어 있습니다. v142 빌드 도구용 C++ Clang-cl(x64/x86)도 선택되어 있습니다.

Visual Studio 2022 설치 프로그램 스크린샷.

설치 프로그램에서 개별 구성 요소 탭이 선택되어 있습니다. Windows용 C++ Clang 컴파일러가 선택되어 있습니다. LLVM(clang-cl) 도구 집합에 대한 MSBuild 지원도 선택되어 있습니다.

이후 버전의 Visual Studio일수록 최신 버전의 Clang 도구 집합을 제공합니다. Clang의 번들 버전은 Microsoft의 표준 라이브러리 구현에서 최신 업데이트 상태를 유지하도록 자동으로 업데이트됩니다. 예를 들어 Visual Studio 2019 버전 16.11에는 Clang v12가 포함되어 있습니다.

Clang 도구를 사용하도록 Windows 프로젝트 구성

Clang을 사용하도록 Visual Studio 프로젝트를 구성하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 일반적으로 대화 상자 위쪽에서 모든 구성을 먼저 선택해야 합니다. 그런 다음 일반>플랫폼 도구 집합에서 LLVM(clang-cl)을 선택한 다음 확인을 선택합니다.

Visual Studio 프로젝트 속성 페이지 대화 상자의 스크린샷.

프로젝트 속성 페이지는 구성 속성 > 일반 페이지로 열립니다. LLVM(clang-cl)이 선택된 플랫폼 도구 집합 드롭다운이 선택되어 있습니다.

Visual Studio와 함께 번들로 제공되는 Clang 도구를 사용하는 경우 추가 단계가 필요하지 않습니다. Windows 프로젝트의 경우 Visual Studio는 기본적으로 clang-cl 모드에서 Clang을 호출합니다. 이 도구는 Microsoft 표준 라이브러리 구현과 연결됩니다. 기본적으로 clang-cl.exe*%VCINSTALLDIR%\Tools\Llvm\bin\**%VCINSTALLDIR%\Tools\Llvm\x64\bin\*에 있습니다.

사용자 지정 Clang 설치를 사용하는 경우 LLVMInstallDir 속성의 값을 변경할 수 있습니다. 자세한 내용은 사용자 지정 LLVM 위치 설정을 참조하세요.

Clang 도구를 사용하도록 Linux 프로젝트 구성

Linux 프로젝트의 경우 Visual Studio는 Clang GCC 호환 프런트 엔드를 사용합니다. 프로젝트 속성과 거의 모든 컴파일러 플래그가 동일합니다.

Clang을 사용하도록 Visual Studio Linux 프로젝트를 구성하려면

  1. 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  2. 일반적으로 대화 상자 위쪽에서 모든 구성을 먼저 선택해야 합니다.
  3. 일반>플랫폼 도구 집합에서 WSL(Linux용 Windows 하위 시스템)을 사용하는 경우 Linux용 Windows 하위 시스템용 Clang을 선택합니다. 원격 컴퓨터나 VM을 사용하는 경우 원격 Linux용 Clang을 선택합니다.
  4. 확인을 누릅니다.

Visual Studio 2019 프로젝트 속성 페이지 대화 상자의 스크린샷.

프로젝트 속성 페이지는 구성 속성 > 일반 페이지로 열립니다. 플랫폼 도구 집합이 선택되어 있고 옵션 목록에서 LLVM(clang-c l)이 선택되어 있습니다."

Linux에서 Visual Studio는 기본적으로 PATH 환경 속성에서 검색되는 첫 번째 Clang 위치를 사용합니다. 사용자 지정 Clang 설치를 사용하는 경우 LLVMInstallDir 속성의 값을 변경하거나 프로젝트>속성>구성 속성>VC++ 디렉터리>실행 파일 디렉터리에서 경로를 입력합니다. 자세한 내용은 사용자 지정 LLVM 위치 설정을 참조하세요.

사용자 지정 LLVM 위치 및 도구 집합 설정

LLVM의 사용자 지정 경로를 설정하고 하나 이상의 프로젝트에 대한 사용자 지정 LLVM 도구 집합 버전을 설정하려면 Directory.build.props 파일을 만듭니다. 그런 다음, 해당 파일을 모든 프로젝트의 루트 폴더에 추가합니다. 루트 솔루션 폴더에 추가하면 솔루션의 모든 프로젝트에 적용할 수 있습니다. 파일은 다음 예제와 같이 표시되지만 실제 LLVM 경로 및 버전 번호를 사용합니다.

<Project>
  <PropertyGroup>
    <LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
    <LLVMToolsVersion>15.0.0</LLVMToolsVersion>
  </PropertyGroup>
</Project>

IDE에서 사용자 지정 LLVM 도구 집합 버전 설정

Visual Studio 2019 버전 16.9부터 Visual Studio에서 LLVM에 대한 사용자 지정 도구 집합 버전을 설정할 수 있습니다. 프로젝트에서 이 속성을 설정하려면 다음을 수행합니다.

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>일반 속성 페이지를 선택합니다.

  3. Platform 도구 집합 속성이 아직 설정되지 않은 경우 이 속성을 LLVM(clang-cl)으로 수정합니다. 변경 내용을 저장하려면 적용을 클릭합니다.

  4. 구성 속성>고급 속성 페이지를 선택합니다.

  5. LLVM 도구 집합 버전 속성을 기본 설정 버전으로 수정한 다음, 확인을 선택하여 변경 내용을 저장합니다.

LLVM 도구 집합 버전 속성은 LLVM 플랫폼 도구 집합을 선택한 경우에만 표시됩니다.

프로젝트 또는 솔루션에 Directory.build.props 파일을 추가하면 설정이 프로젝트 속성 페이지 대화 상자에 기본값으로 표시됩니다. 그러나 Visual Studio에서 이러한 속성을 변경하면 Directory.build.props 파일의 설정이 재정의됩니다.

속성 설정, 편집, 빌드 및 디버그

Clang 구성을 설정한 후 다시 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 다시 로드를 선택합니다. 이제 Clang 도구를 사용하여 프로젝트를 빌드하고 디버그할 수 있습니다. Visual Studio는 Clang 컴파일러를 사용 중임을 감지하고 IntelliSense, 강조 표시, 탐색, 기타 편집 기능을 제공합니다. 오류 및 경고는 출력 창에 표시됩니다. Clang 구성의 프로젝트 속성 페이지는 MSVC의 페이지와 유사합니다. 하지만 편집, 계속과 같은 일부 컴파일러 종속 기능은 Clang 구성에 사용할 수 없습니다. 속성 페이지에서 사용할 수 없는 Clang 컴파일러 또는 링커 옵션을 설정할 수 있습니다. 구성 속성>C/C++(또는 링커)>명령줄>추가 옵션 아래의 속성 페이지에서 수동으로 추가합니다.

디버깅하는 경우 중단점, 메모리 및 데이터 시각화, 그리고 대부분의 다른 디버깅 기능을 사용할 수 있습니다.

Visual Studio의 샘플 앱 디버깅 스크린샷

표시되는 앱 부분은 문자열 벡터를 만들고 일부 문자열을 추가합니다. 코드의 중단점에서 실행이 중지되었습니다. v.push_back("Clang/LLVM");."