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了~