1. 程式人生 > >Ubuntu 14.04 LTS 下降級到4.7 and 升級 gcc 到 gcc-4.9、gcc-5 版本

Ubuntu 14.04 LTS 下降級到4.7 and 升級 gcc 到 gcc-4.9、gcc-5 版本

Matlab 2014a支援的gcc/g++版本是4.7x,而ubuntu 14.04以及更高版本預設安裝的版本都是4.8及以上,因此需要降低gcc/g++版本,方法如下:

1 安裝

$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7
  • 1
  • 2
  • 1
  • 2

2 重新建立軟連線

$ cd /usr/bin
$ sudo rm -r gcc
$ sudo ln -sf gcc-4.7 gcc
$ sudo rm -r g++
$ sudo ln -sf g++-4.7 g++

如果沒記錯的話,阿里雲ECS上的Ubuntu也是LTS版本。

如果還在使用較舊版本的Ubuntu,或者是Ubuntu LTS,那麼我們是很難體驗新版gcc的。怎麼辦呢?

我們或許可以自己去編譯用舊版本的gcc去編譯新版本,但比較繁瑣而且坑點較多。如果有現成的包就好啦!

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

首先新增ppa到庫:

1 sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2 sudo apt-get update

如果提示未安裝,還需要先安裝它的包:

1 sudo apt-get install software-properties-common

預設在系統中安裝的是gcc-4.8,但現在都什麼年代了萬一有奇怪的更新呢,可以先升級一下,接著就可以選擇安裝gcc-4.9、gcc-5之類的啦!(注意目前gcc-5實際上是5.3.0,沒有5.1或5.2可供選擇)

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等命令,是找不到新版本檔案所在目錄的:

1
sudo updatedb && sudo ldconfig 2 locate gcc

如果是阿里雲ECS等做了限制的或者是其他奇怪的系統上,你會發現 gcc -v 顯示出來的版本還是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
 6 
 7 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49 \
 8 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 \
 9 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.9 \
10 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.9 \
11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.9
12 
13 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 53 \
14 --slave /usr/bin/g++ g++ /usr/bin/g++-5 \
15 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5 \
16 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5 \
17 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5
複製程式碼

更新連結不僅僅是為了使用新安裝的gcc版本,更重要的是以後可以隨時切換。上面的命令是分為3塊,每塊對應相應的gcc版本,並不是要一股腦全複製貼上進控制檯執行。要注意反斜槓(\)前要有空格,因為它只提供換行的功能。


於是到這裡升級gcc版本就已經完成了。