Ubuntu下gcc/g++多版本共存和版本切换及使用c++11标准的方法

        公司的ubuntu系统上,对应的g++版本很低,不支持C++11标准中的内容,于是我对g++进行了升级。不过升级完成,并且进行了相关的设置后,使用g++ 对c++11基本功能的hello world程序可以编译成功,但到了我的程序,还是会编译出现问题,突然恍然大悟,因为我的程序依赖的公司的很多公共组件都是在老版本上编译的,不支持C++11的内容,所以还是有问题。无奈为了程序能在我们的平台上运行,只能修改程序,不过这个过程中倒是根据网上的教程,熟悉了g++版本的切换等,记录下来。

      

一、查看gcc、g++的版本方法:

 

二、下载安装新版本的方法

g++ 4.8以上的版本支持C++11标准的内容。

安装方法:

  1. sudo add-apt-repository ppa:ubuntu-toolchain-r/test  
  2. sudo apt-get update  
  3. sudo apt-get install gcc-4.8   
  4. sudo apt-get install g++-4.8  

安装完成后,可以查看一下版本:

 

三、版本的切换管理:

方法1:

首先需要将各个版本都加入到候选列表中,并设置优先级(优先级可以不同版本设置相同,后面再通过配置来指定使用的版本)

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 

再输入
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 50
接着输入: 

sudo update-alternatives --config gcc
会看到如下的选项,有 3 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。 

可以看到对应的版本,输入对应的编号,即可修改默认的gcc版本。

对于g++,跟上面的方法相同,最后可以看到:

 

方法2:

另外,还有一种方法,可以修改默认的g++版本,我们可以更改一下gcc的软链接:

  1. sudo rm /usr/bin/gcc  
  2. sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc  
  3. sudo rm /usr/bin/g++  
  4. sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++  

从下图可以看出,其实就是更改了gcc的软链接:

 

使用gcc -v可以查看g++版本,查看修改是否成功。

 

四、使用C++11的方法

对于已经默认修改为g++ 4.8后,编译时,仍可能出现C++11没有生效的问题,如下:

 

处理的办法如下:

参数中加上-std=c++11即可:

 

如果想参数为默认,不需每次添加的话,需要修改如下位置:

sudo vim ~/.bashrc

然后输入自己的管理员密码,进去后在

 # some more ls aliases
这一行注释下,输入

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

 

这样就不用每次输入参数了

 

 

 

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值