Freigeben über


MSB8040-Diagnosecode

In diesem Artikel wird der MSB8040 Fehlercode beschrieben.

Text der Nachricht

MSB8040: Spectre-mitigated libraries are required for this project.

BESCHREIBUNG

Dieser Fehler tritt auf, wenn für das Projekt Spectre-entschärfte Bibliotheken erforderlich sind (C/C++>Spectre Mitigation ist nicht auf "Deaktiviert" festgelegt), aber die Bibliotheken werden nicht installiert. Weitere Informationen finden Sie unter Spectre-Abschwächungen in Microsoft Foundation Classes (MFC).

Beschluss

Ermitteln Sie zunächst, ob Sie die Spectre-Entschärfung implementieren möchten, und führen Sie dann die erforderlichen Schritte aus, um die Installation zu aktualisieren, um den Fehler zu beheben.

Spectre-Entschärfung deaktivieren

Wenn Sie die Spectre-Entschärfung nicht verwenden möchten, deaktivieren Sie die Option in Visual Studio. Vergewissern Sie sich bei Befehlszeilenbuilds, dass Sie nicht die Compileroption /Qspectre oder deren Varianten /Qspectre-load und /Qspectre-load-cf verwenden.

Führen Sie die folgenden Schritte aus, um die Option in Visual Studio zu deaktivieren:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Eigenschaften (Alt+EINGABETASTE) aus.
  2. Wählen Sie im Dialogfeld Eigenschaftenseiten für Ihr Projekt die Eigenschaftenseite "Konfigurationseigenschaften>C/C++>-Codegenerierung " aus.
  3. Legen Sie die Spectre Mitigations-Eigenschaft auf "Deaktiviert" fest.
  4. Wählen Sie OK aus, um Ihre Änderungen zu speichern.

Screenshot, der zeigt, wie Spectre-Entschärfungen in Visual Studio deaktiviert werden.

Spectre-Entschärfung aktivieren

Wenn Sie sich für die Verwendung der Spectre-Entschärfung entscheiden, stellen Sie sicher, dass Ihre Installation die richtigen Compiler- und Bibliothekskomponenten mit Unterstützung für die Spectre-Entschärfung enthält.

Führen Sie die folgenden Schritte aus, um Ihre Installation zu aktualisieren:

  1. Öffnen Sie das Visual Studio-Installationsprogramm.
  2. Wählen Sie die Schaltfläche " Ändern " neben der verwendeten Version von Visual Studio aus.
  3. Wählen Sie oben im Dialogfeld die Registerkarte Einzelne Komponenten aus.
  4. Geben Sie im Feld "Suchkomponenten " "Spectre v14.2" ein.
  5. Stellen Sie im Abschnitt Compiler, Buildtools und Laufzeit sicher, dass die Option MSVC v142… Spectre-mitigated libs für alle Architekturen der Buildziele ausgewählt ist.
  6. Um ATL oder MFC zu verwenden, wählen Sie auch die Bibliotheken aus, z. B. C++ MFC für die neuesten v142-Buildtools mit Spectre Mitigations (oder die entsprechende Version für Ihr Toolset) für alle Architekturen, die die Buildziele sind. Weitere Informationen finden Sie unter Installieren von MFC- und ATL-Bibliotheken.
  7. Wählen Sie "Ändern" aus, um die ausgewählten Komponenten zu installieren.

Screenshot, der zeigt, wie die Installation aktualisiert wird, um die Spectre Mitigations-Bibliothek einzuschließen.

Angeben von Compileroptionen

Wenn Sie Spectre-Gegenmaßnahmen aktivieren, stellen Sie sicher, dass Sie eine /Qspectre Compileroption angeben. Weitere Informationen finden Sie in der Compileroption "/Qspectre ".

Führen Sie die folgenden Schritte aus, um die /Qspectre Compileroption anzugeben:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Eigenschaften (Alt+EINGABETASTE) aus.

  2. Wählen Sie im Dialogfeld Eigenschaftenseiten für Ihr Projekt die Eigenschaftenseite "Konfigurationseigenschaften>C/C++>-Codegenerierung " aus.

  3. Legen Sie die Spectre Mitigations-Eigenschaft auf einen der folgenden Werte fest:

  4. Wählen Sie OK aus, um Ihre Änderungen zu speichern.

Gilt für:

Alle Versionen von MSBuild