MSB8041诊断代码

本文介绍MSB8041错误代码。

消息文本

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

DESCRIPTION

当项目需要Microsoft基础类(MFC)或活动模板库(ATL),但找不到库时,会出现此错误。 在 Visual Studio 中安装C++工作负荷时,默认情况下不会安装 MFC 和 ATL 库。

决议

验证是否已安装生成工具集的正确 MFC 和 ATL 库版本。 对于每个版本的 C++ 生成工具和目标平台,都有具有或不具有 Spectre 缓解的适当 MFC 版本。 例如,C++ MFC 的最新 v143 生成工具(x86 和 x64) 具有 x86 和 x64 库,不含 Spectre 缓解措施,适用于 Visual Studio 2022 的当前版本(v143)。 如果您只是想为某个版本的 Visual Studio 工具集使用最新的库,非 Spectre 生成需要使用 最新 [版本] 的 C++ MFC 生成工具([目标]),而具有 Spectre 缓解的生成则需要使用 最新 [版本] 的 C++ MFC 生成工具([目标])。 为目标平台体系结构选择正确的选项。 其他选项支持专门针对早期工具集的场景。 有关详细信息,请参阅 MFC 库版本

安装 MFC 和 ATL 库

  1. 打开 Visual Studio 安装程序。

  2. 选择使用的 Visual Studio 版本旁边的 “修改 ”按钮。

  3. 选择对话框顶部的 单个组件 选项卡。

  4. “搜索组件 ”框中,输入 MFC

  5. 选择与项目目标匹配的 MFC 组件,例如 x86 或 ARM64EC。 如果在生成项目时启用了 Spectre 缓解,请选择包含相应缓解措施的组件。

    在大多数情况下,需要为最新的生成工具选择 MFC。 组织或项目可能需要特定早期版本的工具集。 确保安装的 MFC 组件的版本、目标和 Spectre 缓解措施与要生成的项目所需的工具集版本、目标和 Spectre 缓解措施相匹配。

  6. “搜索组件 ”框中,输入 ATL

  7. 选择与项目目标匹配的 ATL 组件,例如 x86 或 ARM64EC。 如果在生成项目时启用了 Spectre 缓解,请选择包含相应缓解措施的组件。

    在大多数情况下,需要为最新的生成工具选择 ATL。 你的组织或项目可能需要特定早期版本的 MSVC 生成工具。 确保安装的 ATL 组件的版本、目标和 Spectre 缓解措施与要生成的项目所需的工具集版本、目标和 Spectre 缓解措施相匹配。

  8. 选择 “修改” 以安装所选组件。

有关修改 Visual Studio 以安装所需的库和二进制文件的详细信息,请参阅 “修改 Visual Studio”。

探索高级诊断

若要详细排查生成故障,当找不到以下文件时,会在 C++ 生成过程中触发 MSBuild 目标 Microsoft.CppBuild.targets 中的 MSB8041 错误:$(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib。 属性来自环境($(VCToolsInstallDir))和项目配置:$(_SpectreLibsDir)为空或spectre\$(PlatformShortName)x86x64armarm64或。arm64EC

适用于

MSBuild 的所有版本