C++#include <atlbase.h>未找到

问题描述 投票:0回答:10

当我在 Visual Studio Express 中编译 C++ 程序时,它说找不到

atlbase.h
。我是否缺少一些 SDK 或者什么?

c++ visual-c++ winapi
10个回答
68
投票

Visual Studio 2017

运行 Visual Studio 安装程序时,选择 单独组件选项卡,并在 SDK、库和框架下确保选择 Visual C++ ATL 支持


40
投票

16
投票

Microsoft ATL(活动模板库),其中包含标头

atlbase.h
,包含在 Windows 2003 SDK 中,但不包含在任何较新的 Windows SDK 版本中。它还包含在 Visual Studio 专业版中。


6
投票

Visual Studio 2017 Express 版解决方案

我在 Visual Studio 2017 Express 版本中构建 COM C++ 项目时遇到了同样的错误。正如此处的几位用户所提到的,Visual Studio Express 版本中不包含 ATL 支持。因此,要构建 C++ COM/ATL 项目,您至少需要 社区版

如果您确实需要使用 Express 版本,可以下载并安装 Build Tools for Visual Studio 2017。确保在安装过程中启用“Visual C++ ATL for x86 and 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 源文件和库文件。


5
投票

对于 Visual Studio 2015 用户,请确保安装了 Common Tools for C++(VS 安装程序的一部分)。


3
投票

情况

在 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
。该路径根本没有被
vsvars32.bat
添加到VC Include目录中,因此在构建过程中找不到标头。

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
应直接包含 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

2
投票

该标头似乎是 Windows Platform SDK 的一部分。

您应该在计算机中搜索该文件。如果你错过了它,它会告诉你。


1
投票

我在示例项目中遇到了同样的问题。我指定了示例项目的属性,并且示例项目编译成功。

Visual Studio 8
对于标题

C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include

对于

.lib
文件
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib


1
投票

我还没有看到有人提到 Visual Studio 2015 (MSBuild 14.0)。在这种情况下,我必须下载 Visual C++ BuildTools(可在此处找到:https://visualstudio.microsoft.com/vs/older-downloads/)。安装后,再次运行安装程序允许我修改安装并包含 ATL 库。

希望这对仍在使用 MSBuild 14.0 的任何人有所帮助


0
投票

Visual Studio 社区 2022 年更新:

  1. 打开 Visual Studio 安装程序。

    您可以在开始时搜索它

  2. 修改安装版本

  1. 搜索atl并安装。

    如果您不确定版本,请前往安装目录查看。

    比如我的目录有14.33,所以我选择v14.33,如果有多个版本,就全部安装,或者可以一个一个尝试。

    D:\Program Files\Microsoft Visual Studio�2\Community\VC\Tools\MSVC .33.31629

© www.soinside.com 2019 - 2024. All rights reserved.