Поделиться через


Ошибка MSBuild MSB8040

Для этого проекта требуются библиотеки с устранением рисков Spectre.

Эта ошибка возникает, когда требуется использовать библиотеки с устранением рисков Spectre (для свойства C/C++>Устранение рисков Spectre не задано значение Disabled), но такие библиотеки не установлены.

Чтобы исправить эту ошибку, сначала решите, нужно ли вам устранение рисков Spectre. Сведения об устранении рисков Spectre см. на странице с описанием параметра компилятора /Qspectre. Если устранение рисков Spectre вам не нужно, отключите эту возможность. Для сборок из командной строки убедитесь, что ни параметр компилятора /Qspectre, ни его варианты /Qspectre-load и /Qspectre-load-cf не используются. Чтобы отключить эту возможность в IDE Visual Studio, откройте окно Свойства для своих проектов и на странице свойств Свойства конфигурации>C/C++>Создание кода задайте для свойства Устранение рисков Spectre значение Отключено.

Disable Spectre mitigations in the IDE

Если вы хотите отключить устранение рисков Spectre, убедитесь, что у вас установлены правильные компоненты компилятора и библиотек с поддержкой устранения рисков Spectre. В Visual Studio Installer выберите Изменить и Отдельные компоненты. Затем введите "Spectre версии 14.2" для поиска и в разделе Компилятор, средства сборки и среда выполнения установите флажки MSVC версии 142… библиотеки... с устранением рисков Spectre для всех архитектур, для которых выполняется сборка. Если вы используете ATL или MFC, установите флажки MFC-библиотека C++ для новейшей версии Build Tools v142 с устранением рисков Spectre (или подходящая версия для вашего набора средств) для всех архитектур, для которых выполняется сборка.

Installing the Spectre mitigations library

Кроме того, чтобы включить устранение рисков Spectre, используйте один из параметров компилятора /Qspectre. Чтобы задать это свойство в IDE Visual Studio, откройте окно Свойства для своих проектов и на странице Свойства конфигурации>C/C++>Создание кода задайте для свойства Устранение рисков Spectre значение Включено или Все загрузки для /Qspectre-load, или Все операции загрузки потока управления для /Qspectre-load-cf.

Дополнительные сведения см. в записи блога, посвященной устранению рисков Spectre в MSVC.