MSB8040 błędu MSBuild

W tym projekcie wymagane są biblioteki ograniczone przez specyfikację.

Ten błąd występuje, gdy jest wymagane użycie bibliotek zminimalizowanych przez specyfikację (ograniczenie ryzyka C/C++>Spectre nie jest ustawione na wyłączone), ale biblioteki ograniczone przez specyfikację nie są zainstalowane.

Aby rozwiązać ten problem, najpierw zdecyduj, czy chcesz zaradczego rozwiązania Spectre. Informacje na temat ograniczania ryzyka spectre można przeczytać na stronie opcji /Qspectre kompilatora. Jeśli nie chcesz ograniczać ryzyka spectre, upewnij się, że jest on wyłączony. W przypadku kompilacji wiersza polecenia sprawdź, czy nie używasz /Qspectre opcji kompilatora ani jego wariantów /Qspectre-load i /Qspectre-load-cf. Aby wyłączyć go w środowisku IDE programu Visual Studio, otwórz pozycję Właściwości dla projektów, a następnie na stronie właściwości Właściwości>konfiguracji C/C++>Code Generation ustaw właściwość Spectre Mitigations na Wyłączone.

Disable Spectre mitigations in the IDE

Jeśli chcesz zaradczego rozwiązania Spectre, upewnij się, że zainstalowano odpowiednie składniki kompilatora i biblioteki z obsługą ograniczania ryzyka spectre. W Instalatorze programu Visual Studio wybierz pozycję Modyfikuj , a następnie wybierz pozycję Poszczególne składniki, wyszukaj ciąg "Spectre v14.2" i w sekcji Kompilator, narzędzia kompilacji i środowisko uruchomieniowe upewnij się, że program MSVC w wersji 142... Biblioteki z ograniczeniem ryzyka spectre są wybierane dla wszystkich architektur, dla których tworzysz. Jeśli używasz bibliotek ATL lub MFC, upewnij się, że biblioteki, takie jak C++ MFC dla najnowszych narzędzi kompilacji w wersji 142 z narzędziami Spectre Mitigations (lub odpowiednią wersją zestawu narzędzi), są również wybrane dla wszystkich architektur, dla których tworzysz.

Installing the Spectre mitigations library

Ponadto, aby włączyć środki zaradcze spectre, upewnij się, że używasz jednej z opcji kompilatora /Qspectre . Aby ustawić tę właściwość w środowisku IDE programu Visual Studio, otwórz pozycję Właściwości dla projektów, a następnie na stronie właściwości Właściwości>konfiguracji C/C++>Code Generation ustaw właściwość Spectre Mitigations na Wartość Włączone lub Wszystkie obciążenia dla /Qspectre-load lub Wszystkie obciążenia przepływu sterowania dla /Qspectre-load-cf.

Aby uzyskać więcej informacji, zobacz Spectre mitigations in MFC (Środki zaradcze spectre w MFC).