ubuntu16.04 安装g++7,并支持C++14

在进行PCL点云拼接的时候,遇到undefined reference to `boost::system::generic_category()'等系列undefined reference to问题,起初认为可能是版本问题,为此尝试了版本的切换,但并不是,在此把g++升级过程做一下总结:

 

参考:https://blog.csdn.net/sunshinefcx/article/details/82927458

https://www.jianshu.com/p/3fa30b788d0e

https://blog.csdn.net/qq_35976351/article/details/79673352

 

1、用于加入源,方便更新。

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test

   2、更新

    sudo apt-get update

   3、将/usr/bin/gcc和/usr/bin/g++这两个快捷方式给删除

        sudo update-alternatives --remove-all gcc
        sudo update-alternatives --remove-all g++

   4、安装 g++ 和 gcc (以7版本为例)

       sudo apt-get install gcc-7
       sudo apt-get install g++-7

   5、将gcc和g++绑定到新安装的版本上

        sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20
        sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 20

   6、检查是否安装成功

       gcc --version
       g++ --version

二、g++  gcc的版本切换

因为笔者安装了多个版本,在以上绑定后,版本仍显示4.9,而不是7.为此虚做版本切换:

如果你的Ubuntu中安装了多个版本的g++或者gcc,比如4.8   4.9    5.5等多个版本,想要切换时,打开新的终端,并输入

sudo update-alternatives --config g++

按照提示数字选择想要使用的版本。

即可选择g++版本,gcc同理,在终端中输入

sudo update-alternatives --config gcc
选择相应数字,即选择想要使用的版本。

三、linux g++开启C++11/14支持

sudo vim ~/.bashrc
在some more ls aliases注释块的地方添加下面这两行:

alias g++11='g++ -g -Wall -std=c++11'
alias g++14='g++ -g -Wall -std=c++14'

相当于用别名的方式,简化输入。在编译的时候,仅需要输入g++11或者 g++14即可。
 

你可能感兴趣的:(学习,SLAM,ubuntu16.04,g++版本升级)