我正在两台Windows 8.1笔记本电脑之间切换,刚从TFS加载了我的项目。在一台机器上可以编译,在另一台机器上却无法编译,并显示第一个错误。
error C1083: Cannot open include file: 'atlbase.h': No such file or directory
在这两台笔记本电脑上,我都运行着Visual Studio Ultimate 2013。在第一台笔记本电脑上,我已经检查了它从哪里获取
atlbase.h
,它是从C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include
中获取的,即从Visual Studio 2012安装目录中获取的。在新机器上,我没有安装Visual Studio 2012,因此目录C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include
不存在。
其他人也有类似的问题(例如Ramilol's question),因为他们正在使用Visual Studio Express。我正在使用Ultimate。
这可能是一个环境变量问题(如suggested by raj raj),但我的包含目录路径在VC++ Directories
下是$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath)
,正如所需的那样。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include
确实包含了atlbase.h
(所以我不知道为什么它没有被捡起来)。========== 编辑1:重新措辞 ==========
让我再试着重新措辞这个问题。
我从TFS将一个Visual Studio 2013项目加载到新的构建笔记本电脑上。它无法构建,并显示错误,如
error C1083: Cannot open include file: 'atlbase.h': No such file or directory
。在新机器上,文件atlbase.h
位于目录C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include
中。在我的项目属性中,我的包含目录路径位于
VC++ Directories
下,分别为$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath)
。我该如何检查这些宏的设置,如果它们不在
atlbase.h
所在的位置(即C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include
),我该如何解决? ========== 编辑2:已安装Microsoft Visual C ++ Redistributables ========== 回应jp2code的回答,工作正常的计算机和不工作的计算机都安装了类似的Microsoft Visual C ++ Redistributables数组,如下图所示(左侧为工作正常的计算机):
========== 编辑3:环境变量 ==========
在他的回答中,pje解释了如何查找环境变量。%VCInstallDir%
被正确设置为C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\
,但是如果我右键点击#include <atlbase.h>
这一行,我会得到以下错误提示,这表明尽管%VCInstallDir%
正确,但VS并不是在那里寻找:
========== 编辑 4:平台工具集设置 ==========
另一个可能性是项目设置中的配置属性 | 常规 | 平台工具集
,由评论中的manuell和Michael Burr在他的回答中建议。对于该项目,它被设置为Visual Studio 2012 (v110)
,但下拉列表中列出的唯一其他选项是v110_wp80
,当选择它时,它变成了Windows Phone 8.0 (v110)
。如果我在记事本中手动编辑.vcxproj文件并重新打开Visual Studio Ultimate 2013中的项目,则属性页现在将平台工具集列为Visual Studio 2013 (v120)(未安装)
。
如果我启动新的C ++ Windows Store项目,我可以轻松设置平台工具集为Visual Studio 2013 (v120)
,实际上它是下拉列表中唯一列出的选项。(注:新项目将目标平台版本
设置为“Windows 8.1”,并且它已灰显,因此我无法更改,而失败的项目将其设置为Windows 8。)
========== 编辑 5: 整个项目设置文件 ==========
在评论中,Michael 建议“也许将 .vcxproj 文件发布到某个地方(比如在 github 上作为一个 gist)可能会有帮助”。我已经在 这里 发布了它。
========== 编辑 6: 卸载并重新安装 Visual Studio 2013 Ultimate ==========
没有效果,相同的错误仍然出现。