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 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:
открытый установщик визуальной студии.
вы можете поискать его в начале
изменить установленную версию
найдите атл и установите.
если вы не уверены в версии, перейдите в каталог установки, чтобы проверить ее.
например у меня в каталоге 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.