Ubuntu 12.04安装gcc/g++ 4.8.1(解决install gcc-4.8时error: gnutls_handshake() failed: A TLS packet...)

参考资料: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  显示当前默认版本



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值