(以下彩色部分不是必须的,可先尝试黑色部分)
ubuntu12.04更新源下载
把下载的文件里的内容复制进sources.txt
更新源 sudo gedit /etc/apt/sources.list
sudo add-apt-repository ppa:ubuntu-toolchain-r/test (?)
sudo apt-get update
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
修改命令符的软链接,由于之前的gcc,g++版本在/usr/bin/里已建了软链接,因此在改目录下先找到gcc和g++,
删除
sudo rm -r gcc
sudo rm -r g++
重新建立软链接
sudo ln -s gcc-4.7 gcc
sudo ln -s g++-4.7 g++
###########################################################################################
我们知道C++11标准开始支持类内初始化(in-class initializer),Qt creator编译出现error,不支持这个特性,原因在于,Ubuntu12.04默认的是使用gcc4.6,而只有gcc4.7才支持C++11,使用如下办法升级Ubuntu 12.04下的gcc :
更新Ubuntu源g++-4.rar
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
升级完成使用gcc --version 显示版本依然是4.6.3,并没有把4.7版设置为默认Qt编译时调用的/usr/bin/g++ 是个链接文件,把这个文件删除,建立链接到g++-4.7:
cd /usr/bin
sudo rm g++
sudo ln -s g++-4.7 g++
现在编译并执行例程,ok!编译通过了!