次の方法で共有


MSB8040診断コード

この記事では、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 でオプションを無効にするには、次の手順に従います。

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] (Alt+Enter) を選択します。
  2. プロジェクトの [プロパティ ページ] ダイアログで 、[ 構成プロパティ>C/C++>Code Generation プロパティ ページを選択します。
  3. [Spectre 軽減策] プロパティを [無効] に設定します。
  4. [OK] を選択して変更を保存します。

Visual Studio で Spectre 軽減策を無効にする方法を示すスクリーンショット。

Spectre の軽減策を有効にする

Spectre 軽減策を使用する場合は、インストールに Spectre 軽減策をサポートする適切なコンパイラおよびライブラリ コンポーネントが含まれていることを確認してください。

インストールを更新するには、次の手順に従います。

  1. Visual Studio インストーラーを開きます。
  2. 使用する Visual Studio のバージョンの横にある [ 変更 ] ボタンを選択します。
  3. ダイアログの上部にある [個々のコンポーネント] タブを選択します。
  4. [ コンポーネントの検索 ] ボックスに、「 Spectre v14.2」と入力します。
  5. [コンパイラ] の [ビルドツールとランタイム] セクションで、MSVC v142...Spectre緩和ライブラリ オプションがビルドターゲットのすべてのアーキテクチャに対して選択されていることを確認してください。
  6. ATL または MFC を使用するには、 最新の v142 ビルド ツール用の C++ MFC などのライブラリも選択し、ビルド ターゲットのすべてのアーキテクチャに対して Spectre 軽減策 (またはツールセットの適切なバージョン) を使用します。 詳細については、「 MFC ライブラリと ATL ライブラリのインストール」を参照してください。
  7. [ 変更] を選択して、選択したコンポーネントをインストールします。

Spectre 軽減策ライブラリを含むようにインストールを更新する方法を示すスクリーンショット。

コンパイラ オプションを指定する

Spectre 軽減策を有効にする場合は、必ず /Qspectre コンパイラ オプションを指定してください。 詳細については、 /Qspectre コンパイラ オプションを参照してください。

/Qspectre コンパイラ オプションを指定するには、次の手順に従います。

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] (Alt+Enter) を選択します。

  2. プロジェクトの [プロパティ ページ] ダイアログで 、[ 構成プロパティ>C/C++>Code Generation プロパティ ページを選択します。

  3. Spectre Mitigations プロパティを次のいずれかの値に設定します。

  4. [OK] を選択して変更を保存します。

対象

MSBuild のすべてのバージョン