GCC 6.3.0 手动编译安装
GCC,即The GNU Compiler Collection,是GNU计划的最关键组成部分。
GCC是一整套编译器的集合,大家使用的Code::Blocks使用的就是由MinGW提供的GCC编译套件。
刚刚看Debian 9的新闻的时候发现Debian 9将升级GCC到6,我看了一下,最让人振奋的是编译标准从C++98提升到了C++14,要知道C++11后这门语言已经大有不同,所以这个升级很让我心动。
GCC作为Linux最核心的一部分,没有提供现成的软件包直接安装,所以写一遍简短的笔记记一下安装过程,也给后来人参考。
文章发布时GCC 6最新的Release版本是6.3.0。安装的系统是Elementary OS 0.4,基于Ubuntu 16.04。
1. 准备
准备环节很简单,肯定要下载GCC源码。同时,还需要四个必备软件包:m4、gmp、mpc、mpfr。
在这里推荐使用中科院开源软件协会的GNU镜像,速度飞快:http://mirrors.opencas.org/gnu。
gcc、gmp、mpc、mpfr都在此下载,m4直接用apt安装就行。
下载好直接解压,用tar zxvf <文件名>就可以了。
2. 安装
安装顺序如下:
- 安装m4 - 直接跑命令行就行: - 1- sudo apt update && sudo apt install mp4 -y
- 安装gmp - 解压后cd进去,直接安装: - 1 2 3 4- make clean ./configure --prefix=/usr/local/gmp-6.1.2 make sudo make install
- 安装mpfr - 也是cd进去跑命令: - 1 2 3 4- make clean ./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-6.1.2 make sudo make install
- 安装mpc - (其实都是套路,我也不知道这里写什么好了 - 1 2 3 4 5- make clean ./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.2 \ --with-mpfr=/usr/local/mpfr-3.1.5 make sudo make install
- 安装GCC - 终于到重头戏了。 - 首先是配置: - 1 2 3 4- make clean ./configure --prefix=/usr --enable-threads=posix --enable-languages=c,c++ \ --disable-multilib --with-gmp=/usr/local/gmp-6.1.2 \ --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3- 这个配置有两个地方需要注意: - 我直接替换了本机的GCC。如果要独立并存安装,请修改--prefix参数。
- 我只启用了C和C++语言,你也可以启用更多的语言,修改-enable-languages即可。
 - 接下来是漫长的编译过程: - 1- sudo make -j16- -j参数是多线程编译,理论上是CPU核心数两倍为宜,大家看情况调整。- 编译很漫长,可以出去玩一会儿再回来( - 编译完成后可以安装,为了防止出现问题,请一定切换到 - root用户进行安装:- 1 2- su - make install- 很快就装好啦~ 
- 我直接替换了本机的GCC。如果要独立并存安装,请修改
3. 测试
下面就是测试。
输入
|  |  | 
可以看到返回:
|  |  | 
编译了两个Hello World都正常。
下面测试C++11特性代码:
|  |  | 
不用加-std=c++11也能编译通过啦~
现在就是默认C++14标准了,又可以开心coding了~