Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается код ошибки MSB8040.
Текст сообщения
MSB8040: Spectre-mitigated libraries are required for this project.
Описание
Эта ошибка возникает, когда проект требует библиотек с включённым устранением уязвимостей Spectre (C/C++>Устранение уязвимостей Spectre не установлено на Отключено), но библиотеки не установлены. Дополнительные сведения см. в разделе "Устранение рисков Spectre" в классах Microsoft Foundation (MFC).
Резолюция
Сначала определите, хотите ли вы реализовать устранение неполадок Spectre, а затем выполните необходимые действия, чтобы обновить установку, чтобы устранить ошибку.
Отключение защитных мер против Spectre
Если вы не хотите использовать устранение рисков Spectre, отключите этот параметр в Visual Studio. Для сборок командной строки убедитесь, что вы не используете /Qspectre
параметр компилятора или его варианты /Qspectre-load
и /Qspectre-load-cf
.
Чтобы отключить параметр в Visual Studio, выполните следующие действия.
- В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите "Свойства " (ALT+ВВОД).
- В диалоговом окне "Страницы свойств" проекта выберите страницу Конфигурационные свойства>C/C++>Генерация кода.
- Задайте свойству Spectre Mitigations значение "Отключено".
- Нажмите кнопку "ОК ", чтобы сохранить изменения.
Включить меры по устранению уязвимости Spectre
Если вы решили использовать устранение рисков Spectre, убедитесь, что установка включает правильные компоненты компилятора и библиотеки с поддержкой устранения рисков Spectre.
Чтобы обновить установку, выполните следующие действия.
- Откройте Установщик Visual Studio.
- Нажмите кнопку "Изменить " рядом с используемой версией Visual Studio.
- Выберите вкладку "Отдельные компоненты" в верхней части диалогового окна.
- В поле "Поиск компонентов " введите Spectre версии 14.2.
- В разделе Компилятор, средства сборки и среда выполнения убедитесь, что выбрана опция MSVC v142... библиотеки Spectre-mitigated для всех архитектур, на которые нацелена сборка.
- Чтобы использовать ATL или MFC, также выберите библиотеки, такие как C++ MFC для последней версии средств сборки v142 с защитой от Spectre (или соответствующую версию для вашего набора инструментов) для всех целевых архитектур сборки. Дополнительные сведения см. в разделе "Установка библиотек MFC и ATL".
- Выберите "Изменить", чтобы установить выбранные компоненты.
Указание параметров компилятора
Если включить меры по снижению уязвимости Spectre, обязательно укажите параметр компилятора /Qspectre
. Дополнительные сведения см. в параметре компилятора /Qspectre .
Чтобы указать параметр компилятора /Qspectre
, выполните следующие действия.
В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите "Свойства " (ALT+ВВОД).
В диалоговом окне «Страницы свойств» вашего проекта выберите страницу свойств конфигурации>C/C++>Генерация кода.
Задайте свойству Spectre Mitigations одно из следующих значений:
- Включен
- Все загрузки для /Qspectre-load
- Все нагрузки потока управления для /Qspectre-load-cf
Нажмите кнопку "ОК ", чтобы сохранить изменения.
Применимо к
Все версии MSBuild