GCC8.1升级笔记

升级前准备工作参考之前《Debian8.5安装编译GCC6.1.0笔记》。

环境:

debian buster amd64

原GCC版本 7.3.0

1、从官网镜像下载gcc

https://gcc.gnu.org/mirrors.html 镜像站点列表,从这里选个看得顺眼的镜像站点,下载 gcc-8.1.0.tar.gz

(我用的是http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.gz)

解压至一指定目录。如:

~/gcc-8.1.0

ps:建议以root登录。

2、安装依赖

apt install build-essential  libgmp-dev libmpfr-dev libmpc-dev

3、配置

进入~/gcc-8.1.0

./configure --disable-multilib  #因我只用64位版,所以不需要多架构,只需要amd64就行了

生成makefile文件

3、编译

直接运行make 

然后是漫长的编译(10小时以上)

4、安装

make install

默认安装在/usr/local/bin ,库安装于/usr/local/lib/gcc/x86_64-pc-linux-gnu/8.1.0

此时因安装的目录不在path,所以还是gcc 7.3

5、创建软链

1)删除原软链

cd /usr/bin && rm  g++ gcc #删除原gcc7软链

2)建立软链

cd /usr/local/bin && ln -s $(pwd)/gcc  /usr/bin/gcc

ln -s $(pwd)/g++ /usr/bin/g++

同样,/usr/local/lib/gcc/x86_64-pc-linux-gnu/8.1.0 软链到 /usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0

6、测试

建个临时测试文件check.cpp

#include 
int main(int argc,char** argv)
{
    using namespace std;
    cout<<__cplusplus<

编译 g++ check.cpp --std=c++2a

生成a.out 


可以看到__cplusplus的值已经是 201709L 了

如果是gcc 7.3,那么使用 --std=c++2a就会报错。


你可能感兴趣的:(C++,debian,gcc)