本文介绍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 库
打开 Visual Studio 安装程序。
选择使用的 Visual Studio 版本旁边的 “修改 ”按钮。
选择对话框顶部的 单个组件 选项卡。
在 “搜索组件 ”框中,输入 MFC。
选择与项目目标匹配的 MFC 组件,例如 x86 或 ARM64EC。 如果在生成项目时启用了 Spectre 缓解,请选择包含相应缓解措施的组件。
在大多数情况下,需要为最新的生成工具选择 MFC。 组织或项目可能需要特定早期版本的工具集。 确保安装的 MFC 组件的版本、目标和 Spectre 缓解措施与要生成的项目所需的工具集版本、目标和 Spectre 缓解措施相匹配。
在 “搜索组件 ”框中,输入 ATL。
选择与项目目标匹配的 ATL 组件,例如 x86 或 ARM64EC。 如果在生成项目时启用了 Spectre 缓解,请选择包含相应缓解措施的组件。
在大多数情况下,需要为最新的生成工具选择 ATL。 你的组织或项目可能需要特定早期版本的 MSVC 生成工具。 确保安装的 ATL 组件的版本、目标和 Spectre 缓解措施与要生成的项目所需的工具集版本、目标和 Spectre 缓解措施相匹配。
选择 “修改” 以安装所选组件。
有关修改 Visual Studio 以安装所需的库和二进制文件的详细信息,请参阅 “修改 Visual Studio”。
探索高级诊断
若要详细排查生成故障,当找不到以下文件时,会在 C++ 生成过程中触发 MSBuild 目标 Microsoft.CppBuild.targets 中的 MSB8041 错误:$(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib。 属性来自环境($(VCToolsInstallDir))和项目配置:$(_SpectreLibsDir)为空或spectre\、$(PlatformShortName)x86x64arm、arm64或。arm64EC
适用于
MSBuild 的所有版本