【问题标题】:Visual Studio 2012 using platform toolset v100. Cannot open source file "atlbase.h"Visual Studio 2012 使用平台工具集 v100。无法打开源文件“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 无关紧要,因为我不使用它。

标签: c++ visual-studio-2010 visual-studio visual-studio-2012 atl


【解决方案1】:
  1. 当您切换到另一个不同的工具集时,这个完整的工具集必须可用。这也包括头文件。
  2. 应该可以轻松将此 DLL 转换为 VS 2012。或者您可以在不使用单独的 DLL 的情况下包含完整的源代码。

【讨论】:

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

    这些步骤解决了我的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多