文章目录
  1. 1. 配置编译器
  2. 2. 验证 C++11
  3. 3. 参考资料

如何使用 g++ 编译 C11 标准的程序?

在 Ubuntu 系统下,g++4.7 是支持 C11 标准的。笔者用的系统是ubuntu 12.04,默认安装的是4.6.3,很明显不支持C11,好在有 4.7 的 ppa。本篇主要讲述如何安装 g++ 4.7:

### 安装 g++ 4.7

打开终端,并运行以下命令:

1
2
3
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-4.7

配置编译器

安装完毕后,需要重新配置系统默认编译器(如果系统已安装4.6版本)。运行以下命令进行设置:

1
2
3
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
$ sudo update-alternatives --config gcc

会提示你设置默认 gcc 版本:

有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。

  选择       路径            优先级  状态
------------------------------------------------------------
* 0            /usr/bin/gcc-4.6   60        自动模式
  1            /usr/bin/gcc-4.6   60        手动模式
  2            /usr/bin/gcc-4.7   40        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:2
update-alternatives: 使用 /usr/bin/gcc-4.7 来提供 /usr/bin/gcc (gcc),于 手动模式 中。

设置完毕,可通过以下命令查询当前 g++ 编译器的版本信息:

1
$ g++ --version

若输出信息如下所示,则设置 OK (否则需重设):

g++ (Ubuntu/Linaro 4.7.2-11precise2) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

验证 C++11

源码出自:这里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
char s[] = "Hello World!";
int Uppercase = 0;
for_each(s, s+sizeof(s), [&Uppercase](char c) {
if (isupper(c))
Uppercase++;
});
cout << Uppercase << " uppercase letters in: " << s << endl;
}

编辑以上程序,保存为lambda.cpp。

打开终端,使用以下命令编译:

1
$ g++ -std=c++11 lambda.cpp -o lambda

运行程序:

1
$ ./lambda

输出:

2 uppercase letters in: Hello World!

参考资料

文章目录
  1. 1. 配置编译器
  2. 2. 验证 C++11
  3. 3. 参考资料