Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano kod błędu MSB8040.
Tekst wiadomości
MSB8040: Spectre-mitigated libraries are required for this project.
Opis
Ten błąd występuje, gdy projekt wymaga bibliotek z ograniczeniem ryzyka spectre (ograniczenie ryzyka C/C++>Spectre nie jest ustawione na wyłączone), ale biblioteki nie są zainstalowane. Aby uzyskać więcej informacji, zobacz Spectre mitigations in Microsoft Foundation Classes (MFC) (Ograniczenia ryzyka spectre w klasach programu Microsoft Foundation (MFC).
Rezolucja
Najpierw określ, czy chcesz zaimplementować środki zaradcze Spectre, a następnie wykonaj niezbędne kroki, aby zaktualizować instalację i rozwiązać problem.
Wyłącz zabezpieczenia Spectre
Jeśli nie chcesz używać mitigacji Spectre, wyłącz opcję w programie Visual Studio. W przypadku kompilacji wiersza polecenia upewnij się, że nie używasz /Qspectre opcji kompilatora ani jego wariantów /Qspectre-load i /Qspectre-load-cf.
Aby wyłączyć opcję w programie Visual Studio, wykonaj następujące kroki:
- W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Właściwości (Alt+Enter).
- W oknie dialogowym Strony właściwości projektu wybierz stronę Właściwości konfiguracji>C/C++>Generowanie kodu.
- Ustaw właściwość Spectre Mitigations na Wyłączone.
- Aby zapisać zmiany, wybierz pozycję OK.
Włącz ochronę przed Spectre
Jeśli zdecydujesz się użyć ograniczenia ryzyka spectre, upewnij się, że instalacja zawiera poprawne składniki kompilatora i biblioteki z obsługą ograniczania ryzyka spectre.
Aby zaktualizować instalację, wykonaj następujące kroki:
- Otwórz Instalatora programu Visual Studio.
- Wybierz przycisk Modyfikuj obok używanej wersji programu Visual Studio.
- Wybierz kartę Poszczególne składniki na górze okna dialogowego.
- W polu Wyszukaj składniki wpisz Spectre v14.2.
- W sekcji Kompilator, narzędzia kompilacji i środowisko uruchomieniowe upewnij się, że MSVC v142... Dla wszystkich architektur docelowych kompilacji jest wybierana opcja Biblioteki z ograniczeniem ryzyka.
- Aby użyć atl lub MFC, wybierz również biblioteki, takie jak C++ MFC dla najnowszych narzędzi kompilacji w wersji 142 z narzędziami Spectre Mitigations (lub odpowiednią wersją zestawu narzędzi) dla wszystkich architektur docelowych kompilacji. Aby uzyskać więcej informacji, zobacz Instalowanie bibliotek MFC i ATL.
- Wybierz pozycję Modyfikuj , aby zainstalować wybrane składniki.
Określanie opcji kompilatora
Jeśli włączysz środki zaradcze Spectre, upewnij się, że określono opcję kompilatora /Qspectre. Aby uzyskać więcej informacji, zobacz /Qspectre compiler option (Opcja kompilatora /Qspectre ).
Aby określić opcję kompilatora /Qspectre , wykonaj następujące kroki:
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Właściwości (Alt+Enter).
W oknie dialogowym Strony właściwości projektu wybierz stronę Właściwości konfiguracji>C/C++>Generowanie kodu.
Ustaw właściwość Spectre Mitigations na jedną z następujących wartości:
- Włączono
- Wszystkie obciążenia dla /Qspectre-load
- Wszystkie obciążenia przepływu sterowania dla /Qspectre-load-cf
Aby zapisać zmiany, wybierz pozycję OK.
Odnosi się do
Wszystkie wersje programu MSBuild