gcc 4.8更新gcc 4.9 5.4版本等

轉載:http://www.linuxidc.com/Linux/2017-01/139976.htmlinux

若是還在使用較舊版本的Ubuntu,或者是Ubuntu LTS,那麼咱們是很難體驗新版gcc的。怎麼辦呢?咱們或許能夠本身去編譯用舊版本的gcc去編譯新版本,但比較繁瑣並且坑點較多。若是有現成的包就好啦!ubuntu

原來,在toolchain/test下已經有打包好的gcc,版本有4.x、5.0、6.0等,用這個PPA升級gcc就能夠啦!阿里雲

首先添加ppa到庫:spa

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

2 sudo apt-get update htm

若是提示未安裝,還須要先安裝它的包:blog

1 sudo apt-get install software-properties-common

默認在系統中安裝的是gcc-4.8,但如今都什麼年代了萬一有奇怪的更新呢,能夠先升級一下,接着就能夠選擇安裝gcc-4.九、gcc-5之類的啦!(注意目前gcc-5其實是5.3.0,沒有5.1或5.2可供選擇)get

1 sudo apt-get upgrade             //必選
2 sudo apt-get install gcc-4.8 g++-4.8
3 sudo apt-get install gcc-4.9 g++-4.9
4 sudo apt-get install gcc-5 g++-5          //選一個便可;

(非必須)如今能夠考慮刷新一下,不然好比locate等命令,是找不到新版本文件所在目錄的:it

1 sudo updatedb && sudo ldconfig
2 locate gcc

若是是阿里雲ECS等作了限制的或者是其餘奇怪的系統上,你會發現 gcc -v 顯示出來的版本仍是gcc-4.8的,所以須要更新一下連接:編譯

對應以前選擇更新的gcc版本進行更新連接:

  gcc 4.8

 1 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 \
 2 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 \
 3 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.8 \
 4 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.8 \
 5 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.8
gcc 4.9
 1 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49 \
 2 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 \
 3 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.9 \
 4 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.9 \
 5 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.9

   gcc 5  

1 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 53 \
2 --slave /usr/bin/g++ g++ /usr/bin/g++-5 \
3 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5 \
4 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5 \
5 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5

更新連接不單單是爲了使用新安裝的gcc版本,更重要的是之後能夠隨時切換。上面的命令是分爲3塊,每塊對應相應的gcc版本,並非要一股腦全複製粘貼進控制檯運行。要注意反斜槓(\)前要有空格,由於它只提供換行的功能。


因而到這裏升級gcc版本就已經完成了。

 1 def claShannonEnt(setData):
 2      lengthData = len(setData)
 3      dicData = {}
 4      for cnt in range(lengthData):
 5           if setData[cnt,-1] not in dicData.keys():
 6                dicData[setData[cnt,-1]] = 0
 7           dicData[setData[cnt,-1]] += 1
 8      Hent = 0.0#輸出信息ent
 9      for key in dicData.keys():
10           pData = float(dicData[key])/lengthData
11           Hent -= pData*math.log(pData,2)
12      return Hent
相關文章
相關標籤/搜索