MSBuild 错误 MSB8040

此项目需要 Spectre 缓解库。

如果已请求使用 Spectre 缓解库(“C/C++”>“Spectre 缓解”未设置为“已禁用”),但未安装 Spectre 缓解库,则会出现此错误 。

若要修复此错误,请首先确定是否需要 Spectre 缓解。 可以在 /Qspectre 编译器选项的页面上阅读有关 Spectre 缓解的信息。 如果不需要 Spectre 缓解,请确保已将其禁用。 对于命令行生成,请确保未使用 /Qspectre 编译器选项或其变体 /Qspectre-load/Qspectre-load-cf。 若要在 Visual Studio IDE 中禁用它,请打开项目的“属性”,然后在“配置属性”>“C/C++”>“代码生成”属性页中,将“Spectre 缓解”属性设置为“已禁用”。

Disable Spectre mitigations in the IDE

如果需要 Spectre 缓解,请确保已安装支持 Spectre 缓解的正确编译器和库组件。 在 Visual Studio 安装程序中,依次选择“修改”、“单个组件”,搜索“Spectre v14.2”,然后在“编译器、生成工具和运行时”部分中,确保已为生成所基于的所有体系结构选择“MSVC v142… Spectre 缓解库” 。 如果使用的是 ATL 或 MFC,请确保也为生成所基于的所有体系结构选择库(如带有 Spectre 缓解的适用于最新 v142 生成工具的 C++ MFC)(或工具集的相应版本)。

Installing the Spectre mitigations library

此外,若要启用 Spectre 缓解,请确保使用其中一个 /Qspectre 编译器选项。 若要在 Visual Studio IDE 中设置此属性,请打开项目的“属性”,然后在“配置属性”>“C/C++”>“代码生成”属性页中,将“Spectre 缓解”属性设置为“已启用”,或对于 /Qspectre-load 选择“所有负荷”,对于 /Qspectre-load-cf 选择“所有控制流负荷”。

有关详细信息,请参阅 MFC 中的 Spectre 缓解