本文說明MSB8040錯誤碼。
消息正文
MSB8040: Spectre-mitigated libraries are required for this project.
說明
當專案需要 Spectre 緩和的連結庫 (C/C++>Spectre 風險降低 未設定為 Disabled),但未安裝連結庫時,就會發生此錯誤。 如需詳細資訊,請參閱 Microsoft Foundation Classes (MFC) 中的 Spectre 風險降低。
解決辦法
首先,確定您是否希望採取Spectre緩解措施,然後遵循必要的步驟來進行更新以解決錯誤。
停用Spectre緩解措施
如果您不想使用 Spectre 風險降低功能,請停用 Visual Studio 中的 選項。 針對命令列組建,請確認您不是使用 /Qspectre 編譯程式選項或其變體 /Qspectre-load 和 /Qspectre-load-cf。
若要停用 Visual Studio 中的 選項,請遵循下列步驟:
- 在 [方案總管] 中,以滑鼠右鍵按兩下項目節點,然後選取 [ 屬性 ] (Alt+Enter)。
- 在專案的 [ 屬性頁] 對話框中,選取 [ 組態屬性>C/C++>Code 產生 ] 屬性頁。
- 將 Spectre Mitigations 屬性設定為 Disabled。
- 選擇 [確定] 以儲存變更。
啟用 Spectre 緩解措施
如果您決定使用 Spectre 風險降低功能,請確定您的安裝包含正確的編譯程式和連結庫元件,並支援 Spectre 風險降低。
若要更新您的安裝,請遵循下列步驟:
- 開啟 Visual Studio 安裝程式。
- 選取您使用之 Visual Studio 版本旁的 [修改] 按鈕。
- 選取對話框頂端 個別元件 索引標籤。
- 在 [ 搜尋元件 ] 方塊中,輸入 Spectre v14.2。
- 在 編譯器、建置工具和執行時間 區段中,確保已針對建置目標的所有架構選取 MSVC v142… Spectre 緩解的程式庫 選項。
- 若要使用 ATL 或 MFC,請選取連結庫,例如 C++ MFC,適用於提供 Spectre 風險降低功能的最新 v142 建置工具(或適用於工具組的適當版本),以適用於組建目標的所有建置架構。 如需詳細資訊,請參閱 安裝 MFC 和 ATL 連結庫。
- 選取 [修改] 以安裝選取的元件。
指定編譯程序選項
如果您啟用 Spectre 緩解措施,請確定您指定編譯器 /Qspectre 選項。 如需詳細資訊,請參閱 /Qspectre 編譯程序選項。
若要指定 /Qspectre 編譯程式選項,請遵循下列步驟:
在 [方案總管] 中,以滑鼠右鍵按兩下項目節點,然後選取 [ 屬性 ] (Alt+Enter)。
在專案的 [ 屬性頁] 對話框中,選取 [ 組態屬性>C/C++>Code 產生 ] 屬性頁。
將 Spectre Mitigations 屬性設定為下列其中一個值:
選擇 [確定] 以儲存變更。
適用對象
MSBuild 的所有版本