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


код диагностики MSB8041

В этой статье описывается код ошибки MSB8041.

Текст сообщения

MSB8041: MFC/ATL Libraries are required for this project.

Описание

Эта ошибка возникает, если для проекта требуются классы Microsoft Foundation (MFC) или активная библиотека шаблонов (ATL), но библиотеки не найдены. Библиотеки MFC и ATL по умолчанию не устанавливаются при установке рабочей нагрузки C++ в Visual Studio.

Резолюция

Убедитесь, что установлены правильные версии библиотек MFC и ATL для набора инструментов сборки. Существуют версии MFC для каждой версии средств сборки C++, для каждой целевой платформы, как с устранением рисков Spectre, так и без него. Например, C++ MFC для последних средств сборки версии 143 (x86 и x64) содержит библиотеки x86 и x64 без механизмов защиты от Spectre для последней версии Visual Studio 2022 (версия 143). Если вы просто хотите использовать последние библиотеки для определенной версии набора инструментов Visual Studio, вам потребуется C++ MFC для последних средств сборки [версия] ([целевая]) для сборок, отличных от Spectre, и MFC для последних средств сборки [версия] с помощью средств устранения рисков Spectre ([целевой]) для исправленных сборок Spectre. Выберите правильный вариант для целевой архитектуры платформы. Другие варианты поддерживают сценарии для конкретного применения более раннего набора инструментов. Дополнительные сведения см. в разделе "Версии библиотеки MFC".

Установка библиотек MFC и ATL

  1. Откройте Установщик Visual Studio.

  2. Нажмите кнопку "Изменить " рядом с используемой версией Visual Studio.

  3. На верхней панели диалогового окна выберите вкладку отдельных компонентов.

  4. В поле "Компоненты поиска " введите MFC.

  5. Выберите компоненты MFC, соответствующие целевым объектам проекта, например x86 или ARM64EC. Выберите компоненты с устранением рисков Spectre, если вы создаете проекты с включенными средствами устранения рисков Spectre.

    В большинстве случаев необходимо выбрать MFC для последних средств сборки. Для организации или проекта может потребоваться определенная более ранняя версия набора инструментов. Убедитесь, что версии, целевые платформы и устранение уязвимостей Spectre компонентов MFC, которые вы устанавливаете, соответствуют версии набора инструментов, целевым платформам и устранению уязвимостей Spectre, необходимым для проекта, который вы создаёте.

  6. В поле "Поиск компонентов " введите ATL.

  7. Выберите компоненты ATL, соответствующие целевым объектам проекта, например x86 или ARM64EC. Выберите компоненты с устранением рисков Spectre, если вы создаете проекты с включенными средствами устранения рисков Spectre.

    В большинстве случаев необходимо выбрать ATL для последних средств сборки. Для вашей организации или проекта может потребоваться определенная более ранняя версия средств сборки MSVC. Убедитесь, что версия, целевые платформы и механизмы защиты от Spectre установленных компонентов ATL соответствуют версии инструментария, целевым платформам и механизмам защиты от Spectre, которые требуются для создаваемого проекта.

  8. Выберите "Изменить", чтобы установить выбранные компоненты.

Дополнительные сведения об изменении Visual Studio для установки необходимых библиотек и двоичных файлов см. в разделе "Изменение Visual Studio".

Изучение расширенной диагностики

Для устранения неполадок сборки, ошибка MSB8041 активируется в процессе сборки проекта на C++ в цели MSBuild Microsoft.CppBuild.targets, когда не найден следующий файл: $(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib. Свойства берутся из среды ($(VCToolsInstallDir)) и конфигурации проекта: $(_SpectreLibsDir) пусто или spectre\, $(PlatformShortName) это x86, x64, arm, arm64 или arm64EC.

Применимо к

Все версии MSBuild