参考资料:http://askubuntu.com/questions/271388/how-to-install-gcc-4-8-in-ubuntu-12-04-from-the-terminal (*)
http://walkerqt.blog.51cto.com/1310630/1276346
由于gcc 4.8之后才可以完整实现C++11,所以我决定将gcc升级。
首先声明,我是linux菜鸟,接触linux整……一周。遇到问题都是通过google解决的,所以无法从深层次解释为什么这么做。
我在VMware中和个人的笔记本上各安装了一次,ubuntu都是12.04版本,但是VMware碰到了较多问题,而本本只是参照资料1就完美安装,至于为什么……我也不知道o(╯□╰)o
标准步骤:
1. 首先查看当前gcc的版本: gcc --version (一般是4.6左右)
2. Adding the toolchain/test PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
3. 更新,然后安装即可:
sudo apt-get update
sudo apt-get install gcc-4.8
error: gnutls_handshake() failed: A TLS packet with unexpected length was
received.
查询得知这是
GnuTLs or pycurl bug
解决方法:
顺序在终端执行下列操作:
sudo apt-get install build-essential fakeroot dpkg-dev
mkdir ~/python-pycurl-openssl
cd ~/python-pycurl-openssl
sudo apt-get source python-pycurl
sudo apt-get build-dep python-pycurl
sudo apt-get install libcurl4-openssl-dev
sudo dpkg-source -x pycurl_7.19.0-4ubuntu3.dsc
cd pycurl-7.19.0
# remove the HAVE_CURL_GNUTLS=1 in the following file
sudo vim debian/patches/10_setup.py.dpatch
# remove the HAVE_CURL_GNUTLS=1 in the following file
sudo vim setup.py
# replace all gnutls into openssl in the following file
sudo vim debian/control
sudo dpkg-buildpackage -rfakeroot -b
sudo dpkg -i ../python-pycurl_7.19.0-4ubuntu3_amd64.deb
红字部分是由前面步骤(the dpkg-buildpackage)决定的,需要根据个人对应文件夹下的.deb文件名称修改
然后执行标准步骤,应该就ok了!g++的更新步骤相同,不过是把gcc 换成 g++。
更换gcc g++编译器默认版本
建立软链接即可:
删除gcc-4.6的软连接文件/usr/bin/gcc。(只是删除软连接)
命令:sudo rm /usr/bin/gcc
然后建一个软连接,指向gcc-4.4。
命令:sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
ok了,现在用命令:gcc -v 显示当前默认版本