MSBuild 오류 MSB8041
MSB8041: 이 프로젝트에는 MFC/ATL 라이브러리가 필요합니다.
이 오류는 MFC 또는 ATL이 빌드에 필요하지만 찾을 수 없을 때 발생합니다.
설명
Visual Studio에서 C++ 워크로드를 설치할 때 MFC 및 ATL 라이브러리는 기본적으로 설치되지 않습니다. 오류를 해결하려면 빌드 도구 집합에 적합한 버전의 MFC 및 ATL 라이브러리가 설치되어 있는지 확인합니다. 각 버전의 C++ 빌드 도구, 각 대상 플랫폼, Spectre 완화를 사용하거나 사용하지 않는 MFC 버전이 있습니다. 예를 들어 최신 v143 빌드 도구(x86 및 x64)용 C++ MFC 에는 최신 버전의 Visual Studio 2022(v143)에 대한 Spectre 완화 기능이 없는 x86 및 x64 라이브러리가 있습니다. Visual Studio 도구 집합의 지정된 버전에 대해 최신 라이브러리를 사용하려는 경우 Spectre가 아닌 빌드의 경우 최신 [버전] 빌드 도구용 C++ MFC([대상]) 및 Spectre 완화 빌드의 경우 Spectre 완화 기능이 있는 최신 [버전] 빌드 도구용 C++ MFC([대상])가 필요합니다. 대상 플랫폼 아키텍처에 적합한 옵션을 선택합니다. 다른 옵션은 구체적으로 이전 도구 집합을 대상으로 하는 경우에 해당합니다. 자세한 내용은 MFC 라이브러리 버전을 참조하세요.
MFC 및 ATL 라이브러리를 설치하려면
- Visual Studio 설치 관리자를 엽니다.
- 사용하는 Visual Studio 버전 옆에 있는 수정 단추를 선택합니다.
- 대화 상자 맨 위에 있는 개별 구성 요소 탭을 선택합니다.
- 검색 구성 요소 상자에 MFC를 입력합니다.
- x86 또는 ARM64EC와 같이 프로젝트 대상과 일치하는 MFC 구성 요소를 선택합니다. Spectre 완화를 사용하도록 설정된 프로젝트를 빌드하는 경우 Spectre 완화 기능이 있는 구성 요소를 선택합니다.
- 대부분의 경우 최신 빌드 도구용 MFC를 선택하려고 합니다. 조직 또는 프로젝트에는 특정 이전 버전의 도구 집합이 필요할 수 있습니다. 설치하는 MFC 구성 요소의 버전, 대상, Spectre 완화가 빌드 중인 프로젝트에 필요한 도구 집합 버전, 대상, Spectre 완화와 일치하는지 확인합니다.
- 검색 구성 요소 상자에 ATL을 입력합니다.
- x86 또는 ARM64EC와 같이 프로젝트 대상과 일치하는 ATL 구성 요소를 선택합니다. Spectre 완화를 사용하도록 설정된 프로젝트를 빌드하는 경우 Spectre 완화 기능이 있는 구성 요소를 선택합니다.
- 대부분의 경우 최신 빌드 도구용 ATL을 선택하려고 합니다. 조직 또는 프로젝트에는 특정 이전 버전의 도구 집합이 필요할 수 있습니다. 설치한 ATL 구성 요소의 버전, 대상, Spectre 완화가 빌드 중인 프로젝트에 필요한 도구 집합 버전, 대상, Spectre 완화와 일치하는지 확인합니다.
- 수정을 선택하여 선택한 구성 요소를 설치합니다.
필요한 라이브러리 및 이진 파일을 설치하도록 Visual Studio를 수정하는 방법에 대한 자세한 내용은 Visual Studio 수정을 참조하세요.
고급 진단
자세한 빌드 문제 해결을 위해 $(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib
파일을 찾을 수 없는 경우 MSBuild 대상 Microsoft.CppBuild.targets의 C++ 빌드 프로세스에서 이 오류가 트리거됩니다. 속성은 환경($(VCToolsInstallDir)
) 및 프로젝트 구성에서 가져옵니다. $(_SpectreLibsDir)
는 비어 있거나 spectre\
이고, $(PlatformShortName)
은 x86
, x64
, arm
, arm64
또는 arm64EC
입니다.