Visual Studio 2012 使用平台工具集 v100。无法打开源文件“atlbase.h”

Posted

技术标签:

【中文标题】Visual Studio 2012 使用平台工具集 v100。无法打开源文件“atlbase.h”【英文标题】:Visual Studio 2012 using platform toolset v100. Cannot open source file "atlbase.h" 【发布时间】:2014-05-10 06:44:09 【问题描述】:

我正在使用 Visual Studio Ultimate 2012。我有一个项目可以在我使用默认 v110 平台工具集时运行。

现在我想将点云库 (PCL) 添加到这个项目中以进一步处理它。不幸的是,只有 Visual Studio 2010 可用的二进制文件。我首先尝试自己编译 2012 二进制文件,但结果证明麻烦大于其价值。所以我将我的平台工具集更改为 v100,以便使用 PCL 预构建的二进制文件。

但是,这样做时,我的其中一个包含 (atlbase.h) 不再被识别。我试图通过在项目属性中添加 ATL 的 Include 和 Library 目录来手动包含它。这产生了很多新的错误,源自 atl 头文件,这看起来很奇怪。我还尝试将选项“使用 ATL”从默认的“不使用 ATL”更改为“动态链接到 ATL”和“静态链接到 ATL”,但无济于事。

我正在使用 64 位 Windows 7 Ultimate 机器并希望以 32 位编译。

编辑:使用 Process Monitor 我发现 Visual Studio 正在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h 中寻找包含文件。 此文件夹 (..\atlmfc) 不存在。 我的 VS2012 安装在 D:\School Programs\Visual Studio 2012

有解决办法吗?

【问题讨论】:

你安装了VS 2010吗? 我已经安装了 VS 2010 Express 版本,是的。 2010 Express 自带构建工具,但是without ATL source code to include/reference. 我不确定这有多好用,但您也许可以使用 WDK 7.1 让 ATL 与 VS 2010 Express 一起工作:microsoft.com/en-us/download/confirmation.aspx?id=11800 @RomanR.:我知道这一点,但我没有使用 2010 Express IDE 打开或编译项目,我使用的是 2012 Ultimate 和 2010 平台工具集,而 2012 Ultimate 确实附带ATL。我认为 express 中缺少 ATL 无关紧要,因为我不使用它。 【参考方案1】:
    当您切换到另一个不同的工具集时,这个完整的工具集必须可用。这也包括头文件。 应该可以轻松将此 DLL 转换为 VS 2012。或者您可以在不使用单独的 DLL 的情况下包含完整的源代码。

【讨论】:

【参考方案2】:
    下载并安装 WDK 7.1 (microsoft.com/en-us/download/confirmation.aspx?id=11800) 创建一个指向安装目录的环境变量,我叫我的WINDDK 转到项目属性 -> VC++ 目录 将 $(WINDDK)\inc\atl71 添加到包含目录 将 $(WINDDK)\lib\ATL\i386 添加到库目录(这是针对 32 位的) 转到项目属性 -> 链接器 -> 输入 将 atl.lib 添加到其他依赖项

这些步骤解决了我的问题

【讨论】:

以上是关于Visual Studio 2012 使用平台工具集 v100。无法打开源文件“atlbase.h”的主要内容,如果未能解决你的问题,请参考以下文章

使用平台工具集 v120 (Visual Studio 2013) 在 Visual Studio 2015 中创建 C++/CLI 项目

visual studio 2012中如何查看一个工程需要哪些dll文件???

在不安装 Visual Studio 2010 的情况下使用 vc100 平台工具集?

visual studio 2012 编写的程序xp能 运行吗?

在 Visual Studio 2013 中使用 v60 平台工具集时,调试信息不​​匹配

Visual Studio 2012 没有调试选项