MSBuild 错误 MSB8040
此项目需要 Spectre 缓解库。
如果已请求使用 Spectre 缓解库(“C/C++”>“Spectre 缓解”未设置为“已禁用”),但未安装 Spectre 缓解库,则会出现此错误 。
若要修复此错误,请首先确定是否需要 Spectre 缓解。 可以在 /Qspectre 编译器选项的页面上阅读有关 Spectre 缓解的信息。 如果不需要 Spectre 缓解,请确保已将其禁用。 对于命令行生成,请确保未使用 /Qspectre
编译器选项或其变体 /Qspectre-load
和 /Qspectre-load-cf
。 若要在 Visual Studio IDE 中禁用它,请打开项目的“属性”,然后在“配置属性”>“C/C++”>“代码生成”属性页中,将“Spectre 缓解”属性设置为“已禁用”。
如果需要 Spectre 缓解,请确保已安装支持 Spectre 缓解的正确编译器和库组件。 在 Visual Studio 安装程序中,依次选择“修改”、“单个组件”,搜索“Spectre v14.2”,然后在“编译器、生成工具和运行时”部分中,确保已为生成所基于的所有体系结构选择“MSVC v142… Spectre 缓解库” 。 如果使用的是 ATL 或 MFC,请确保也为生成所基于的所有体系结构选择库(如带有 Spectre 缓解的适用于最新 v142 生成工具的 C++ MFC)(或工具集的相应版本)。
此外,若要启用 Spectre 缓解,请确保使用其中一个 /Qspectre
编译器选项。 若要在 Visual Studio IDE 中设置此属性,请打开项目的“属性”,然后在“配置属性”>“C/C++”>“代码生成”属性页中,将“Spectre 缓解”属性设置为“已启用”,或对于 /Qspectre-load 选择“所有负荷”,对于 /Qspectre-load-cf 选择“所有控制流负荷”。
有关详细信息,请参阅 MFC 中的 Spectre 缓解。