【问题标题】:C++ #include <atlbase.h> is not found未找到 C++ #include <atlbase.h>
【发布时间】:2011-04-23 08:01:12
【问题描述】:

当我在 Visual Studio Express 中编译我的 C++ 程序时,它说它找不到 atlbase.h。我是否缺少一些 SDK 或其他东西?

【问题讨论】:

标签: c++ visual-c++ winapi


【解决方案1】:

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

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

【讨论】:

  • 它包含在旧版本的 Windows 平台 SDK 中,但是(显然是有意地)从当前版本中省略了。
  • atlbase.h 文件只提供社区版,尝试从其他 SDK 下载是浪费时间,因为找不到所有其他 SDK 链接。对吗?
【解决方案2】:

包含标头 atlbase.h 的 Microsoft ATL(活动模板库)包含在 Windows 2003 SDK 中,但不包含在任何较新的 Windows SDK 版本中。它还包含在 Visual Studio 专业版中。

【讨论】:

  • 我应该下载三个文件中的哪一个
  • PSDK-amd64.exe 如果您在 x86-64 CPU 上运行 64 位 Windows。 PSDK-ia64.exe 如果您在 Itanium 上运行 Windows。 PSDK-x86.exe 如果您运行的是 32 位 Windows。
  • 嗯,链接不存在了。 This 似乎有效
【解决方案3】:

【讨论】:

  • 我刚刚使用了这个解决方案。到目前为止最好的答案。出于某种原因,我不得不下载 ISO,但使用 Daemon Tools 托管它并且安装它没有问题。它不仅为您提供标头(atlbase.h)和库(例如atls.lib),我需要的下一个缺少的库是ws2_32.lib,它还包含在许多其他库中。不要为旧的 SDK 烦恼,而且您当然不需要像很多人一开始建议的那样升级您的 Express Visual Studio 版本。
  • 我已经下载了这个驱动工具包,但是不知道如何在项目中给出 atlbase.h 的路径。还问了一个问题here
【解决方案4】:

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

Visual Studio 8
对于标头
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

      Visual Studio 2017

      运行 Visual Studio 安装程序时,选择 Individual components 选项卡,并在 SDK、库和框架 下确保 Visual C++ ATL Support 被选中。

      【讨论】:

      • 我做了上面的,但它没有在路径上结束,所以我添加了它。对我来说,它是:D:\Visual Studio 2017\VC\Tools\MSVC\14.11.25503\atlmfc\include
      • 在以黄色突出显示的中间还有“MFC and ATL support (x86 and x64)”项,可能也需要勾选。
      • 安装 ATL 并不能解决 Visual Studio Community 2017 中的问题。这可能仅适用于 VS Professional。
      • 同样适用于 VS 19,包括 v141 (VS 17) 和 v142 (VS 19) 工具链。
      • @StevoisiaksupportsMonica 这适用于 Visual Studio 2017 Express,这是 OP 的问题。但这是不完整的。首先,安装 Visual Studio 2017 BuildTools 并选择 Visual C++ ATL for x64。然后进入目录并将C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\atlmfc 复制到VSDExpress 文件夹C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023。然后工具可以找到源文件。请参阅@pogosama 的回答。
      【解决方案7】:

      情况

      在 Visual Studio 2017 社区版中,我们安装了“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
      

      详情

      我们最终在C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include 中找到了标题atlbase.hvsvars32.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(参见Cannot Open File 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
      

      【讨论】:

      • 此方法无法在最新的 Visual Studio 更新中继续存在,因为 ATL SDK 已更新到 14.14.26428,因此路径发生了变化。更新符号链接路径后,它再次工作。
      【解决方案8】:

      Visual Studio 2017 速成版解决方案

      我在 Visual Studio 2017 Express 版本中构建 COM C++ 项目时遇到了同样的错误。正如这里的几个用户所提到的,ATL 支持不包含在 Visual Studio 的 Express 版本中。因此,要构建 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 源文件和库文件。

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-10
          • 1970-01-01
          • 1970-01-01
          • 2014-07-18
          • 2016-12-30
          • 1970-01-01
          • 2013-01-15
          • 2016-01-29
          相关资源
          最近更新 更多