MSBuild 오류 MSB8040

이 프로젝트에는 Spectre 완화 라이브러리가 필요합니다.

이 오류는 Spectre 완화 라이브러리를 사용해야 하지만(C/C++>Spectre 완화사용 안 함으로 설정되지 않음) Spectre 완화 라이브러리가 설치되지 않은 경우에 발생합니다.

오류를 해결하려면 먼저 스펙터 완화를 사용할지 여부를 결정합니다. /Qspectre 컴파일러 옵션에 대한 페이지에서 스펙터 완화에 대해 알아볼 수 있습니다. 스펙터 완화를 원치 않는 경우 사용하지 않도록 설정해야 합니다. 명령줄 빌드의 경우 /Qspectre 컴파일러 옵션 또는 해당 변형 /Qspectre-load/Qspectre-load-cf를 사용하지 않음을 확인합니다. Visual Studio IDE에서 이 옵션을 사용하지 않도록 설정하려면 프로젝트의 속성을 열고 구성 속성>C/C++>코드 생성 속성 페이지에서 스펙터 완화 속성을 사용 안 함으로 설정합니다.

Disable Spectre mitigations in the IDE

스펙터 완화를 원하는 경우 스펙터 완화에 대한 지원이 포함된 올바른 컴파일러 및 라이브러리 구성 요소가 설치되어 있어야 합니다. Visual Studio 설치 관리자에서 수정을 선택한 다음, 개별 구성 요소를 선택하고 ‘Spectre v14.2’를 검색하고, 컴파일러, 빌드 도구 및 런타임 섹션에서 빌드 중인 모든 아키텍처에 대해 MSVC v142… Spectre 완화 라이브러리가 선택되어 있는지 확인합니다. ATL 또는 MFC를 사용하는 경우 빌드 중인 모든 아키텍처에 대해 Spectre 완화를 지원하는 최신 v142 빌드 도구용 C++ MFC(또는 적절한 버전의 도구 집합)와 같은 라이브러리도 선택되어 있어야 합니다.

Installing the Spectre mitigations library

또한 Spectre 완화를 사용하도록 설정하려면 /Qspectre 컴파일러 옵션 중 하나를 사용해야 합니다. Visual Studio IDE에서 이 속성을 설정하려면 프로젝트의 속성을 열고 구성 속성>C/C++>코드 생성 속성 페이지에서 스펙터 완화 속성을 사용으로 설정하거나 /Qspectre-load에 대해 모든 로드 또는 /Qspectre-load-cf에 대해 모든 제어 흐름 로드를 설정합니다.

자세한 내용은 MFC의 스펙터 완화를 참조하세요.