当我在Visual Studio Express中编译我的C++程序时,它显示找不到atlbase.h
。我是不是缺少某些SDK或其他东西?
当我在Visual Studio Express中编译我的C++程序时,它显示找不到atlbase.h
。我是不是缺少某些SDK或其他东西?
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 的答案。 - 1283822它随Windows Driver Kit版本7.1.0一起提供。
atlbase.h
)和库文件(例如atls.lib
),我需要的下一个缺失的库文件是ws2_32.lib
,它也包含在其中以及其他一大堆库文件。不要费心去找旧的SDK,你肯定不需要升级你的Express Visual Studio版本,尽管很多人一开始都会建议这样做。 - Cookie微软的 ATL (Active Template Library),其中包括头文件atlbase.h
,已经随着Windows 2003 SDK一起发布,但它不在任何更新的 Windows SDK 版本中提供。它也与 Visual Studio 的专业版一起提供。
PSDK-amd64.exe
。如果您在 Itanium 上运行 Windows,则使用 PSDK-ia64.exe
。如果您正在运行 32 位 Windows,则使用 PSDK-x86.exe
。 - wkl解决Visual Studio 2017 Express版的问题
我在使用Visual Studio 2017 Express版构建COM C++项目时遇到了相同的错误。正如这里的几位用户所提到的,Express版的Visual Studio不包括ATL支持。因此,要构建C++ COM/ATL项目,您至少需要使用Community版。
如果您确实需要使用Express版,则可以下载并安装Visual Studio 2017 Build Tools。在安装过程中确保启用'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源文件和库文件了。
如果您使用的是Visual Studio 2015,确保已安装C++公共工具(包含在VS安装程序中)。
我们安装了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
我们最终在 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include
中找到了头文件 atlbase.h
。这个路径并没有被添加到 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位项目,创建另一个名为junk的目录并将它从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平台SDK的一部分。
您应该在计算机上搜索该文件。这将告诉您是否缺少它。