找不到C ++ #include <atlbase.h> </atlbase.h>

时间:2010-10-09 23:15:03

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

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

9 个答案:

答案 0 :(得分:35)

答案 1 :(得分:20)

Visual Studio 2017

运行Visual Studio安装程序时,选择单个组件选项卡,然后在 SDK,库和框架下确保 Visual C ++ ATL支持已被选中。 VS Installer Visual C++ ATL Support selected

答案 2 :(得分:12)

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

答案 3 :(得分:4)

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

答案 4 :(得分:3)

Visual Studio 2017 Express版解决方案

在Visual Studio 2017 Express版中构建COM C ++项目时遇到相同的错误。如此处的多个用户所述,Visual Studio的Express版本不包含ATL支持。因此,要构建C ++ COM / ATL项目,至少需要 Community版本

如果您确实需要使用Express版本,则可以下载并安装Build Tools for Visual Studio 2017。确保在安装过程中启用“ x86和x64的Visual C ++ ATL ”组件。

之后,在项目属性中添加其他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 :(得分:1)

这似乎是Windows Platform SDK的一部分。

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

答案 6 :(得分:1)

情况

使用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

详细

我们最终在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(请参阅Cannot Open File atls.lib)。这是由于预期的文件结构是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

答案 7 :(得分:0)

我对示例项目有同样的问题。我指定了示例项目的属性和成功编译的示例项目。

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

.lib档案 C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib

答案 8 :(得分:0)

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

希望这可以帮助仍在使用MSBuild 14.0的任何人