windows的c++ 11编译器
C++11 compiler for windows
我刚刚在第九频道看了几个视频。我发现像lambda这样的东西很酷。当我试图复制这个例子时,它失败了。auto
也不工作。
我使用的是诺基亚的qtcreator,它随gcc-4.4.0一起发布。
我想知道哪个编译器实现了有趣的功能,这样我就可以玩和学习。我不是反微软的,所以我不介意尝试Visual Studio,如果它有这些功能的话。
几乎所有的c++ 11特性都在GCC 4.6中实现了。x。获取最新GCC版本(MinGW)的一个好地方是TDM网站- http://tdm-gcc.tdragon.net/download。通过覆盖文件,将当前的GCC替换为TDM GCC应该很容易…
特殊版本的MinGW:
MinGW-Builds提供了gcc提供的所有功能(目前为4.7.2)
即:包括std::thread, std::async, std::future和friends。
据我所知,这是迄今为止你能在Windows上得到的最完整的c++ 11。
您可以在这里获得MinGW-build二进制文件。与其他基于gcc的安装不同,它支持posix线程,这是目前在Windows上获得gcc对c++ 11线程和朋友的支持的关键。
将目录mingw提取到任意位置,并将以下两个路径添加到PATH环境变量中:(好吧,更改F:coding…)
F:codingMinGWbin
F:codingMinGWmsys1.0bin
两者相加,以分号分隔。您将需要注销或重新启动。为了验证是否正确,您可以打开命令提示符,并写入
g++ --version
您应该得到这样的响应,提到MinGW-builds:
g++ (Built by MinGW-builds project) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc. ...
我在Eclipse中编写了一个更完整的指令:http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds
对于在Windows上玩和学习c++ 11,我推荐Stephan T. Lavavej的MinGW Distro。最新版本包含GCC 4.8.2和Boost 1.55.0。
如果您正在寻找支持大量c++ 11特性的Windows上兼容gcc的编译器,请查看MinGW-w64。
如果你只是在寻找lambas和auto,以及其他一些c++ 11的特性,如decltype
等(同样,与最新的稳定的gcc分支相比,没有那么多的特性被实现),那么你也可以使用Windows上免费的Visual Studio 2010 Express for c++。
查看编译器的概述和支持的c++ 11特性
Scott Meyers在这里维护了一个网页:
c++ 11 featureavailability
网页上的第一个连结是:
Apache Wiki在几个编译器中支持c++ 11的概述是你应该看的。它详细记录了所有流行编译器支持的c++ 11特性。
Visual Studio 11预览版还支持lambdas。
Visual Studio 2017支持c++ 11, c++ 14, &c++ 17。+一些现代c++的"实验"模块。如果您决定使用Visual Studio,则可以在项目属性中设置c++标准。默认为c++ 11,但您可以将其设置为c++ 14, c++ 17或最新草案
关于g++, c++ 0x特性支持应该在这里详细说明:GCC中的c++ 0x/c++ 11支持- GNU工程-自由软件基金会(FSF)
如果您想在Windows机器上测试大多数c++ 11语法,您有两个选择:
-
安装Cygwin和编译源
gcc-4.7
(最新快照)和clang++
与libstdc++
。 -
最安全的方法:在虚拟机(VirtualBox是一个免费的虚拟机应用程序)中安装一个现代的Linux(如Ubuntu,如果你是Linux新手),并在这个虚拟机中编译
gcc-4.7
和clang++
。我按照这个网站的说明,在Ubuntu 11.10上成功地编译了这两个程序。 -
最好的选择,作为2014年,是使用最新的CTP更新的Visual Studio 2013(这将工作,甚至为Express版)。
少数Min-GW编译器不支持c++ 11或更高版本。此版本是OpenCV线程所必需的。所以我建议使用TDM-GCC编译器而不是MinGW编译器。安装此编译器并将路径C:TDM-GCC-64bin设置为系统的环境变量。
- C/C++编译器通常会删除重复的库吗
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- Win32编译器选项和内存分配
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++,我收到一个无法理解的编译器错误
- 在线编译器中的分段C++没有打印消息
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 我需要知道编译器如何在cpp中使用析构函数
- 编译器如何区分std::vector的构造函数
- CLANG 编译器 说:变量"PTR"可能未初始化
- 告诉c++编译器该参数没有别名
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 为什么所有C++编译器都会崩溃或挂起此代码
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 为什么C++编译器没有检测到正确声明的类?