windows的c++ 11编译器

C++11 compiler for windows

本文关键字:编译器 c++ windows      更新时间:2023-10-16

我刚刚在第九频道看了几个视频。我发现像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语法,您有两个选择:

  1. 安装Cygwin和编译源gcc-4.7(最新快照)和clang++libstdc++

  2. 最安全的方法:在虚拟机(VirtualBox是一个免费的虚拟机应用程序)中安装一个现代的Linux(如Ubuntu,如果你是Linux新手),并在这个虚拟机中编译gcc-4.7clang++。我按照这个网站的说明,在Ubuntu 11.10上成功地编译了这两个程序。

  3. 最好的选择,作为2014年,是使用最新的CTP更新的Visual Studio 2013(这将工作,甚至为Express版)。

少数Min-GW编译器不支持c++ 11或更高版本。此版本是OpenCV线程所必需的。所以我建议使用TDM-GCC编译器而不是MinGW编译器。安装此编译器并将路径C:TDM-GCC-64bin设置为系统的环境变量。