【问题标题】:Why do the source files that compile on Visual studio 2013, have syntax errors on visual studio 2008?为什么在 Visual Studio 2013 上编译的源文件在 Visual Studio 2008 上会出现语法错误?
【发布时间】:2013-12-25 03:24:49
【问题描述】:

当我在 Visual Studio 2013 中编写源文件并尝试为 Visual Studio 2008 使用相同的源文件时,这些文件有语法错误。 Visual Studio 2013 是否可以模仿 Visual Studio 2008 的编译方式?

我使用的语言是 C++。

【问题讨论】:

  • 如果你想用 VS2008 编译,这样做。我相信您可以将 VS2008 工具与 VS2013 一起使用。如果您想知道代码无法编译的原因,则需要显示代码。以及错误消息。
  • 我喜欢 2013 编译器的智能。我的问题是我编写的所有程序都需要在 VS2013 和 VS2008 上编译。我可以更改工具吗?
  • 是的,我相信你可以改变工具。它在文档中。

标签: c++ visual-studio visual-c++ visual-studio-2008 visual-studio-2013


【解决方案1】:

VS2013 中的 Visual C++ 允许符合 c++ 11 的代码,但 VS2008 不允许,因此您使用的任何新标准语法都不会在 VS2008 下编译。您可以删除语法或查看 VS2008 中的 c++ 期货库,看看是否有您需要的内容,或者是否在 boost 中。

http://msdn.microsoft.com/en-us/library/bb982198(v=vs.90).aspx

http://www.boost.org/

【讨论】:

  • 正确:有大量 C++11 代码被 VS2013(但不是全部)接受,而 VS2008 几乎不支持 C++11。我相信 VS2013 中的 Intellisense 始终接受 C++11 语法,即使您稍后使用 VS2008/10/12 编译它也是如此。他们不会尝试与所有以前的版本兼容。
【解决方案2】:

新版本的 VS 倾向于执行以下操作,这会破坏与旧版本的兼容性。

  1. 支持新的 C++ 标准

  2. 提高与现有标准的一致性

  3. 弃用/删除专有扩展和不正确的实现

一般来说,ISO 标准 C++ 是向后兼容的(总会有一些例外),这意味着大多数旧语法将在新标准上编译。因此,如果您首先在 VS2008 中创建源代码,然后“迁移”到 VS2013(而不是先在 VS2013 中创建它,这可能与 VS2008 的语法不兼容),您可能会获得更大的成功。

【讨论】:

  • 投反对票很好,但很高兴分享您的理由,以便采取适当的措施 - 更正或删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 2015-07-22
  • 2014-01-06
  • 1970-01-01
相关资源
最近更新 更多