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,請確定程式庫,例如 C++ MFC,對於搭配 Spectre 風險降低功能的最新 v142 建置工具 (或適用於工具組的適當版本) 也已針對您要建置的所有架構選取。

Installing the Spectre mitigations library

此外,若要啟用 Spectre 風險降低功能,請確定您使用其中一個 /Qspectre 編譯器選項。 若要在 Visual Studio IDE 中設定此屬性,請開啟專案的 [屬性],然後在 [組態屬性]>[C/C++]>[程式碼產生] 屬性頁面中,將 [Spectre 風險降低] 屬性設為 [啟用],或將 [/Qspectre-load] 設為 [全部載入],或將 [/Qspectre-load-cf] 設為 [所有控制流程載入]

如需詳細資訊,請參閱 MFC 中的 Spectre 風險降低