C++ #include <atlbase.h> не найден

Когда я компилирую свою программу, она говорит, что не может найти atlbase.h. Я пропускаю какой-нибудь SDK или что-то?

10 ответов

Решение

Microsoft ATL (Active Template Library), которая включает в себя заголовок atlbase.h входит в состав Windows 2003 SDK, но не входит ни в одну из новых версий Windows SDK. Это также включено в Профессиональные выпуски Visual Studio.

Visual Studio 2017

При запуске установщика Visual Studio выберите вкладку " Отдельные компоненты " и в разделе " SDK, библиотеки и платформы" убедитесь, что выбрана поддержка Visual C++ ATL. Установщик VS Visual C++ ATL Поддержка выбрана

Решение для Visual Studio 2017 Express Edition

У меня была такая же ошибка при создании проекта COM C++ в Visual Studio 2017 Express Edition. Как уже упоминалось здесь несколькими пользователями, поддержка ATL не включена в Express-версию Visual Studio. Таким образом, для создания C++ COM/ATL-проекта вам понадобится хотя бы версия Community.

Если вам действительно нужно использовать Express Edition, вы можете загрузить и установить Build Tools для Visual Studio 2017. Обязательно включите компонентVisual C++ ATL для x86 и x64 во время установки.

После этого добавьте дополнительные каталоги VC++ в свойствах проекта:

  • Включить каталоги: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\include
  • Библиотечные каталоги: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\lib\x86

Компилятор VC++ должен теперь иметь возможность находить исходные и библиотечные файлы ATL.

Для пользователей Visual Studio 2015 убедитесь, что установлены Common Tools for C++ (часть установщика VS).

обновление для сообщества Visual Studio 2022:

  1. открытый установщик визуальной студии.

    вы можете поискать его в начале

  2. изменить установленную версию

  1. найдите атл и установите.

    если вы не уверены в версии, перейдите в каталог установки, чтобы проверить ее.

    например у меня в каталоге 14.33, поэтому я выбираю v14.33, если есть несколько версий, установите их все, или можете попробовать одну за другой.

    D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629

ситуация

В Visual Studio 2017 Community Edition мы установили "поддержку Visual C++ ATL" и поддержку MFC и ATL. Ошибка все еще произошла в нашем проекте x64.

Решение

Мы исправили некоторые пути с помощью следующих двух команд:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d amd64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64

подробности

В итоге мы нашли заголовок atlbase.h в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include, Этот путь просто не был добавлен в каталог VC Include vsvars32.bat, поэтому заголовок не был найден во время сборки.

vsvars32.bat содержит следующую строку:

@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%`.

Это решено C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include в нашей машине.

Мы создали соединение каталогов, поэтому инструмент сборки находит atlbase.h в ожидаемом каталоге (это первая команда из раздела "Решение" выше):

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"

После этого компоновщик не нашел atls.lib (см. Невозможно открыть файл atls.lib). Это было связано с ожидаемой структурой файла lib должен содержать версию libs для x86 и lib\amd64 должен содержать варианты x64. Вместо, lib\x86 содержал версии x86 и lib\x64 содержал 64-битные версии. Поскольку мы создаем 64-битный проект, создание другого мусорного каталога из amd64 в x64 решило проблему:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d amd64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64

Похоже, что это часть пакета Windows Platform SDK.

Вам следует поискать файл на вашем компьютере. Это скажет вам, если вы пропустите это.

У меня была такая же проблема с примером проекта. Я указал свойства примера проекта, и пример проекта успешно скомпилирован.

Visual Studio 8
Для заголовка
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include

За .lib файл
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib

Я еще не видел, чтобы кто-нибудь упоминал Visual Studio 2015 (MSBuild 14.0). В этом случае мне пришлось загрузить Visual C++ BuildTools (можно найти здесь: https://visualstudio.microsoft.com/vs/older-downloads/). После его установки запуск установщика снова позволил мне изменить установку и включить библиотеки ATL.

Надеюсь, это поможет всем, кто все еще использует MSBuild 14.0.

Другие вопросы по тегам