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


MSB8040

В этой статье описывается код ошибки 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, выполните следующие действия.

  1. В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите "Свойства " (ALT+ВВОД).
  2. В диалоговом окне "Страницы свойств" проекта выберите страницу Конфигурационные свойства>C/C++>Генерация кода.
  3. Задайте свойству Spectre Mitigations значение "Отключено".
  4. Нажмите кнопку "ОК ", чтобы сохранить изменения.

Снимок экрана, показывающий, как отключить меры по устранению уязвимостей Spectre в Visual Studio.

Включить меры по устранению уязвимости Spectre

Если вы решили использовать устранение рисков Spectre, убедитесь, что установка включает правильные компоненты компилятора и библиотеки с поддержкой устранения рисков Spectre.

Чтобы обновить установку, выполните следующие действия.

  1. Откройте Установщик Visual Studio.
  2. Нажмите кнопку "Изменить " рядом с используемой версией Visual Studio.
  3. Выберите вкладку "Отдельные компоненты" в верхней части диалогового окна.
  4. В поле "Поиск компонентов " введите Spectre версии 14.2.
  5. В разделе Компилятор, средства сборки и среда выполнения убедитесь, что выбрана опция MSVC v142... библиотеки Spectre-mitigated для всех архитектур, на которые нацелена сборка.
  6. Чтобы использовать ATL или MFC, также выберите библиотеки, такие как C++ MFC для последней версии средств сборки v142 с защитой от Spectre (или соответствующую версию для вашего набора инструментов) для всех целевых архитектур сборки. Дополнительные сведения см. в разделе "Установка библиотек MFC и ATL".
  7. Выберите "Изменить", чтобы установить выбранные компоненты.

Снимок экрана, на котором показано, как обновить установку, чтобы включить библиотеку устранения рисков Spectre.

Указание параметров компилятора

Если включить меры по снижению уязвимости Spectre, обязательно укажите параметр компилятора /Qspectre. Дополнительные сведения см. в параметре компилятора /Qspectre .

Чтобы указать параметр компилятора /Qspectre , выполните следующие действия.

  1. В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите "Свойства " (ALT+ВВОД).

  2. В диалоговом окне «Страницы свойств» вашего проекта выберите страницу свойств конфигурации>C/C++>Генерация кода.

  3. Задайте свойству Spectre Mitigations одно из следующих значений:

  4. Нажмите кнопку "ОК ", чтобы сохранить изменения.

Применимо к

Все версии MSBuild