【发布时间】: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