Compartir a través de


código de diagnóstico de MSB8041

En este artículo se describe el código de error MSB8041.

Texto del mensaje

MSB8041: MFC/ATL Libraries are required for this project.

Descripción

Este error se produce cuando el proyecto requiere Microsoft Foundation Classes (MFC) o la Biblioteca de plantillas activas (ATL), pero no se encuentran las bibliotecas. Las bibliotecas MFC y ATL no se instalan de forma predeterminada al instalar una carga de trabajo de C++ en Visual Studio.

Resolución

Compruebe que están instaladas las versiones correctas de las bibliotecas MFC y ATL del conjunto de herramientas de compilación. Hay versiones de MFC para cada versión de las herramientas de compilación de C++, para cada plataforma de destino y con o sin mitigaciones de Spectre. Por ejemplo, MFC de C++ para las herramientas de compilación v143 más recientes (x86 y x64) tiene las bibliotecas x86 y x64 sin mitigaciones de Spectre para la versión más reciente de Visual Studio 2022 (v143). Si simplemente desea usar las bibliotecas más recientes para una versión determinada de un conjunto de herramientas de Visual Studio, necesita MFC de C++ para las herramientas de compilación más recientes de [versión] ([destino]) para compilaciones que no sean de Spectre y MFC de C++ para las herramientas de compilación más recientes de [versión] con mitigaciones de Spectre ([destino]) para compilaciones mitigadas de Spectre. Elija la opción correcta para la arquitectura de la plataforma de destino. Las otras opciones admiten escenarios para la segmentación específica de un conjunto de herramientas anterior. Para obtener más información, vea Versiones de biblioteca de MFC.

Instalación de bibliotecas MFC y ATL

  1. Abra el Instalador de Visual Studio.

  2. Seleccione el botón Modificar situado junto a la versión de Visual Studio que use.

  3. Seleccione la pestaña Componentes individuales en la parte superior del cuadro de diálogo.

  4. En el cuadro Buscar componentes , escriba MFC.

  5. Seleccione los componentes de MFC que coincidan con los destinos del proyecto, como x86 o ARM64EC. Seleccione los componentes con mitigaciones de Spectre si compila proyectos con mitigaciones de Spectre habilitadas.

    En la mayoría de los casos, debería seleccionar MFC para las herramientas de compilación más recientes. Es posible que la organización o el proyecto requieran una versión anterior específica del conjunto de herramientas. Asegúrese de que la versión, los destinos y las mitigaciones de Spectre de los componentes de MFC que instale coincidan con la versión, los destinos y las mitigaciones de Spectre requeridas para el proyecto que está construyendo.

  6. En el cuadro Buscar componentes , escriba ATL.

  7. Seleccione los componentes ATL que coincidan con los destinos del proyecto, como x86 o ARM64EC. Seleccione los componentes con mitigaciones de Spectre si compila proyectos con mitigaciones de Spectre habilitadas.

    En la mayoría de los casos, desea seleccionar ATL para la última versión de herramientas de desarrollo. Es posible que la organización o el proyecto requieran una versión anterior específica de las herramientas de compilación de MSVC. Asegúrese de que la versión, los destinos y las mitigaciones de Spectre de los componentes ATL que instale coincidan con la versión del conjunto de herramientas, los destinos y las mitigaciones de Spectre requeridas por el proyecto que está construyendo.

  8. Seleccione Modificar para instalar los componentes seleccionados.

Para obtener más información sobre cómo modificar Visual Studio para instalar las bibliotecas y archivos binarios que necesita, consulte Modificación de Visual Studio.

Exploración de diagnósticos avanzados

Para obtener una solución detallada de problemas de compilación, el error MSB8041 se desencadena en el proceso de compilación de C++ en el destino de MSBuild Microsoft.CppBuild.targets cuando no se encuentra el siguiente archivo: $(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib. Las propiedades proceden del entorno ($(VCToolsInstallDir)) y la configuración del proyecto: $(_SpectreLibsDir) está vacía o spectre\, $(PlatformShortName) es x86, x64, arm, arm64o arm64EC.

Se aplica a

Todas las versiones de MSBuild