【问题标题】:Visual Studio 2008 with c++11带有 c++11 的 Visual Studio 2008
【发布时间】:2013-12-16 15:52:32
【问题描述】:

我能否以某种方式使 Visual C++ 2008 拥有 C++11 库并使用 C++11 标准允许的所有优点?

【问题讨论】:

  • 不,VS2008 不支持 C++11,除非您使用不同的编译器。
  • 但也许我们可以下载额外的 c++11 库文件?
  • 你会很难过的。想想像std::tuple 这样的事情,每个实现者都会使用可变参数模板。
  • 现在有一个功能包,其中包含许多来自 c++11 的功能。例如,我在那里找到了 c++11 标头。 microsoft.com/en-us/download/confirmation.aspx?id=6922

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


【解决方案1】:

简而言之,这是不可能的。 VS2008 不支持 C++11,替换库会导致混乱。

长话短说,你也许可以做点什么:

  1. 使用另一个编译器:C++ compiler support (Updated Link)
  2. 您可以升级您的 Visual Studio,但即使是 MSVC12 (Visual Studio 2013) 也不支持所有 C++11 标准。
  3. 您可以将 Intel 编译器嵌入到您的 Visual Studio 中。但英特尔也没有完全支持 C++11,但不完全支持 MSVC。 Here (Updated link now provides a general description) 一个嵌入英特尔编译器的小方法。
  4. 更新: clang 现在也可以与 Visual Studio 一起使用,请参阅 here
  5. 更新: 正如 Melebius 在 cmets 中所说,MSVC19 (VS2015) 终于支持大部分 C++11 标准...Support For C++11/14/17 Features (Modern C++)

【讨论】:

  • 这很可悲。我有一台旧机器,必须运行自 vs2010 以来不受支持的 winxp(它在我的电脑上的性能已经很糟糕了)。
  • @user2543574 一定要用visual studio吗?
  • 不,但我不确定其他编译器会比 vc2008 运行得更快
  • 通过运行更快:如果您的意思是 ide 试试 qt(可能不是最新的)... qt 还支持更多编译器(我用 msvc、gcc 和 clang 测试过).. . 如果你的意思是编译器,你可以试试 clang。
  • VS 2015 似乎终于支持了大部分 C++11 标准。 msdn.microsoft.com/en-us/library/hh567368.aspx
【解决方案2】:

如果您在使用 MSVC 2008 或 2010 时遇到问题,作为我的cxxomfort backports library 的一部分,我已经设法为它实现了各种 C++11(以及一些可能的 C++14)功能。当然,不能模拟依赖词法分析器/解析器支持的功能(例如可变参数模板),但在大多数情况下,它允许我在 MSVC 2008 Express(我的主要 Windows 目标)中编写向前兼容的代码。

但是,您的想法是使用另一个编译器。对于 Windows XP,GCC 支持高达 4.6(通过例如:Mingw 安装程序),它带来了大多数重要的 C++11 细节,例如可变参数模板和constexprnoexcept

【讨论】:

    【解决方案3】:

    通过使用Boost,可以在 VS2008 中获得 C++11 标准库的一些基础知识,它也有很多有用的工具。

    【讨论】:

      【解决方案4】:

      如果您可以升级到 MSVC++ 2010,它会实现标准的有限子集。早在 2011 年,Marc Gregoire 构建了一个不错的 PowerPoint slide set,展示了 MS Visual C++ 2010 支持的 C11 功能。

      (作为一个在家也只能使用 XP 的人,我能感受到你的痛苦。)

      如果您不需要构建 MS-Windows、CLI 或 MFC 应用程序,您可以考虑使用 G++,它在 32 位版本中具有相当广泛的 C11 标准子集。如果您没有,您可以在他们的website 下载 CYGWIN 应用程序/DLL。

      正如上游有人提到的,您可以尝试将更兼容的编译器移植到 MSVC 中。唉,我还没有尝试移植它,所以我不能给你任何提示或技巧来帮助你这样做。

      【讨论】:

        【解决方案5】:

        如果您可以免费使用最新的 C++ 编译器随附的最新 Visual Studio 社区,那么使用 Visual Studio 2008 似乎完全是在浪费时间。但是,我更喜欢 Visual Studio 2008 IDE for C++。有很多原因,但速度可能是最明显的。诀窍是在 Visual Studio 2008 IDE 中使用最新的编译器和工具。它实际上工作得很好,没有我多年来遇到的任何问题。这是我的做法:

        1. 删除%LOCALAPPDATA%/Microsoft/VisualStudio/9.0/VCComponents.dat
        2. 编辑 <VS2008PATH>/VC/vcpackages/VCProjectEngine.dll.config<VS2008PATH>/VC/vcpackages/AMD64.VCPlatform.config 以反映 Visual Studio 2019 社区、Windows 10 SDK 和您想要的任何额外库的路径。

        这就是你所需要的!提示:我使用 2 个环境变量来跟踪编译器版本号和 SDK 版本号CurrentUCRT=10.0.18362.0CurrentVCTools=14.24.28314,我会在需要时手动更改它们。所以VCProjectEngine.dll.config 中的一行看起来像这样:Include="$(CurrentVS)VC/Tools/MSVC/$(CurrentVCTools)/include;"。我对配置文件使用符号链接,因此我不必在新的 Visual Studio 安装时重新创建它们。您还可以使用此技术启用clang compiler,如下所示:

        1. 创建一个空目录并将其放在上面的搜索顺序中。
        2. 在目录中创建一个指向clang-cl.exe 的符号链接并将其命名为cl.exe
        3. 通过重命名符号链接来关闭和打开 clang 编译器。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-28
        • 1970-01-01
        • 2010-12-02
        • 2014-03-07
        相关资源
        最近更新 更多