【问题标题】:Visual Studio _MSC_VER versus Platform ToolsetVisual Studio _MSC_VER 与平台工具集
【发布时间】:2017-05-03 14:25:18
【问题描述】:

我有一个导入到 VS 2015 的 VS 2010 C++/CLI 项目。因为它链接到一些我无法控制的 VS 2010 C++ 库,所以我需要使用 VS 2010 编译器对其进行编译。当我将项目导入 VS 2015 时,我告诉 VS 不要升级项目(不记得确切的选项,但项目现在在解决方案资源管理器中显示“项目名称(Visual Studio 2010)”)。在项目属性中,Platform Toolset 被列为“Visual Studio 2010 (v100)”:

我使用的其中一个库有一个带有一些 ifdef 的标头,如果 _MSC_VER 不是受支持的版本之一 (Visual C++ 6.0-10.0),则会显示错误。该项目正在生成该错误,并且我确定在 Intellisense 中 during build 显示的 _MSC_VER 是 1900(VS 2015 的默认值)。

如何使用 2010 版 C++ 编译器 (_MSC_VER 1600) 构建项目?这不是 Platform Toolset 选项应该控制的吗?

【问题讨论】:

  • 确保所有项目的“平台工具集”为 v100。
  • @tambre,谢谢。我的解决方案中只有两个 C++ 项目(其余都是 C#),并且这两个 C++ 项目的“平台工具集”都设置为 v100。
  • 我将启动 procmon 以查看 MsBuild 如何找到并启动 cl.exe。
  • 有趣。 VS 2010 项目文件中的某些内容可能无法被 VS15 正确解释,除非升级到更新的等效项。尝试升级解决方案,然后将平台工具集设置为 v100。
  • 我刚刚意识到错误来自 Intellisense,而不是构建。构建实际上工作正常。这是 Visual Studio 中的一个小错误。我添加了一个答案来帮助其他遇到此问题的人。

标签: c++ visual-studio


【解决方案1】:

我误解了 Visual Studio 中发生的事情。该构建实际上运行良好;生成的错误来自 Intellisense。 Visual Studio 中有一个 known bug,其中 Intellisense 无法正确反映项目所选平台工具集指定的 _MSC_VER。万一其他人遇到这个问题,我会留下这个问题。

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 2017-09-04
    • 2017-07-28
    • 1970-01-01
    • 2016-04-26
    • 2016-06-03
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多