当我在Visual Studio Express中编译我的C ++程序时,它说它找不到atlbase.h
。我错过了一些SDK或其他东西吗?
答案 0 :(得分:35)
答案 1 :(得分:20)
答案 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的任何人