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 라이브러리를 설치하려면

  1. Visual Studio 설치 관리자를 엽니다.
  2. 사용하는 Visual Studio 버전 옆에 있는 수정 단추를 선택합니다.
  3. 대화 상자 맨 위에 있는 개별 구성 요소 탭을 선택합니다.
  4. 검색 구성 요소 상자에 MFC를 입력합니다.
  5. x86 또는 ARM64EC와 같이 프로젝트 대상과 일치하는 MFC 구성 요소를 선택합니다. Spectre 완화를 사용하도록 설정된 프로젝트를 빌드하는 경우 Spectre 완화 기능이 있는 구성 요소를 선택합니다.
    • 대부분의 경우 최신 빌드 도구용 MFC를 선택하려고 합니다. 조직 또는 프로젝트에는 특정 이전 버전의 도구 집합이 필요할 수 있습니다. 설치하는 MFC 구성 요소의 버전, 대상, Spectre 완화가 빌드 중인 프로젝트에 필요한 도구 집합 버전, 대상, Spectre 완화와 일치하는지 확인합니다.
  6. 검색 구성 요소 상자에 ATL을 입력합니다.
  7. x86 또는 ARM64EC와 같이 프로젝트 대상과 일치하는 ATL 구성 요소를 선택합니다. Spectre 완화를 사용하도록 설정된 프로젝트를 빌드하는 경우 Spectre 완화 기능이 있는 구성 요소를 선택합니다.
    • 대부분의 경우 최신 빌드 도구용 ATL을 선택하려고 합니다. 조직 또는 프로젝트에는 특정 이전 버전의 도구 집합이 필요할 수 있습니다. 설치한 ATL 구성 요소의 버전, 대상, Spectre 완화가 빌드 중인 프로젝트에 필요한 도구 집합 버전, 대상, Spectre 완화와 일치하는지 확인합니다.
  8. 수정을 선택하여 선택한 구성 요소를 설치합니다.

필요한 라이브러리 및 이진 파일을 설치하도록 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입니다.