MSBuild エラー MSB8040
このプロジェクトには Spectre 軽減済みのライブラリが必要です
このエラーは、Spectre 軽減済みのライブラリの使用が要求された ([C/C++]>[Spectre 軽減策] が [無効] に設定されていない) が、Spectre 軽減済みのライブラリがインストールされていないときに発生します。
このエラーを解決するには、まず Spectre 軽減策を使用するかどうかを決定します。 Spectre の軽減策については、「/Qspectre」コンパイラ オプションのページを参照してください。 Spectre の軽減策が不要な場合は、無効にしてください。 コマンド ライン ビルドの場合、/Qspectre
コンパイラ オプションまたはそのバリアントの /Qspectre-load
と /Qspectre-load-cf
を使用していないことを確認します。 これを Visual Studio IDE で無効にするには、ご自分のプロジェクトの [プロパティ] を開き、[構成プロパティ]>[C/C++]>[コード生成] プロパティ ページで、[Spectre 緩和策] プロパティを [無効] に設定します。
Spectre 軽減策を使用する場合、Spectre 軽減策をサポートする正しいコンパイラおよびライブラリ コンポーネントがインストールされていることを確認します。 Visual Studio インストーラーで、[変更] を選択し、[個別のコンポーネント] を選択して、「Spectre v14.2」を検索し、[コンパイラ、ビルド ツール、およびランタイム] セクションで [MSVC v142… Spectre-mitigated libs] がビルドしているすべてのアーキテクチャで選択されていることを確認します。 ATL または MFC を使用している場合は、[C++ MFC for latest v142 build tools with Spectre Mitigations] (またはお使いのツールセットに適切なバージョン) などのライブラリが、ビルドしているすべてのアーキテクチャで選択されていることを確認します。
また、Spectre 軽減策を有効にするには、/Qspectre
コンパイラ オプションのいずれかを使用していることを確認します。 このプロパティを Visual Studio IDE で設定するには、自分のプロジェクトの [プロパティ] を開き、[構成プロパティ]>[C/C++]>[コード生成] プロパティ ページで、[Spectre 緩和策] プロパティを [有効] に設定するか、/Qspectre-load に All loads または /Qspectre-load-cf に All Control Flow Loads を設定します。
詳細については、MFC の Spectre 軽減策に関するページを参照してください。