この記事では、MSB8040エラー コードについて説明します。
メッセージ テキスト
MSB8040: Spectre-mitigated libraries are required for this project.
説明
このエラーは、プロジェクトで Spectre 軽減ライブラリが必要な場合に発生します (C/C++>Spectre 軽減策 が 無効に設定されていません)。ただし、ライブラリはインストールされていません。 詳細については、「 Microsoft Foundation Classes (MFC) の Spectre 軽減策」を参照してください。
解決策
まず、Spectre 軽減策を実装するかどうかを判断し、必要な手順に従ってインストールを更新してエラーに対処します。
Spectre 軽減策を無効にする
Spectre 軽減策を使用しない場合は、Visual Studio でオプションを無効にします。 コマンド ライン ビルドの場合は、 /Qspectre
コンパイラ オプションまたはそのバリアントの /Qspectre-load
と /Qspectre-load-cf
を使用していないことを確認します。
Visual Studio でオプションを無効にするには、次の手順に従います。
- ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] (Alt+Enter) を選択します。
- プロジェクトの [プロパティ ページ] ダイアログで 、[ 構成プロパティ>C/C++>Code Generation プロパティ ページを選択します。
- [Spectre 軽減策] プロパティを [無効] に設定します。
- [OK] を選択して変更を保存します。
Spectre の軽減策を有効にする
Spectre 軽減策を使用する場合は、インストールに Spectre 軽減策をサポートする適切なコンパイラおよびライブラリ コンポーネントが含まれていることを確認してください。
インストールを更新するには、次の手順に従います。
- Visual Studio インストーラーを開きます。
- 使用する Visual Studio のバージョンの横にある [ 変更 ] ボタンを選択します。
- ダイアログの上部にある [個々のコンポーネント] タブを選択します。
- [ コンポーネントの検索 ] ボックスに、「 Spectre v14.2」と入力します。
- [コンパイラ] の [ビルドツールとランタイム] セクションで、MSVC v142...Spectre緩和ライブラリ オプションがビルドターゲットのすべてのアーキテクチャに対して選択されていることを確認してください。
- ATL または MFC を使用するには、 最新の v142 ビルド ツール用の C++ MFC などのライブラリも選択し、ビルド ターゲットのすべてのアーキテクチャに対して Spectre 軽減策 (またはツールセットの適切なバージョン) を使用します。 詳細については、「 MFC ライブラリと ATL ライブラリのインストール」を参照してください。
- [ 変更] を選択して、選択したコンポーネントをインストールします。
コンパイラ オプションを指定する
Spectre 軽減策を有効にする場合は、必ず /Qspectre
コンパイラ オプションを指定してください。 詳細については、 /Qspectre コンパイラ オプションを参照してください。
/Qspectre
コンパイラ オプションを指定するには、次の手順に従います。
ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] (Alt+Enter) を選択します。
プロジェクトの [プロパティ ページ] ダイアログで 、[ 構成プロパティ>C/C++>Code Generation プロパティ ページを選択します。
Spectre Mitigations プロパティを次のいずれかの値に設定します。
[OK] を選択して変更を保存します。
対象
MSBuild のすべてのバージョン