首頁 > 軟體

Ubuntu升級GCC版本

2020-06-16 17:29:13

1 問題發現


目前正在使用Ubuntu 14.04 LTS, 雖然更新了HWE之後, 系統仍然在不斷的維護he更新, 但是編譯工具是不會更新的, 如果目前我還在使用Ubuntu 14.04, 是無法體驗新版gcc的. 怎麼辦呢?

2 問題解決


其實, 在toolchain/test下已經有打包好的gcc, 版本有4.x、5.0、6.0等, 並為Ubuntu10.04~16.04軍均提供了gcc包, 如下圖所示

用這個PPA升級gcc就可以啦

2.1 新增源


首先新增ppa到庫:

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

2.2 安裝新版gcc/g++


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

sudo apt-get install gcc-4.8 g++-4.8
sudo apt-get install gcc-4.9 g++-4.9
sudo apt-get install gcc-5 g++-5
sudo apt-get install gcc-6 g++-6

具體希望安裝哪個版本, 大家可以自己選擇

2.3 更新系統(可選)


下面這個過程是可選的(非必須), 當然我們也可以直接使用upgrade或者dist-upgrade更新來更新gcc/g++

sudo apt-get upgrade

  • upgrade更新可以看到提示出The following packages have been kept back, 說明有部份packages的安裝版比release版新, 因此我們使用apt-get -u dist-upgrade統一更新到發布的版本. 這條命令會強制更新軟體包到最新版本,並動解決缺少的依賴包.
sudo apt-get dist-upgrade

2.4 重新整理db並locate


接著現在可以考慮重新整理一下, 否則locate等命令是找不到的, 這個也是可選的(非必須)

sudo updatedb && sudo ldconfig
locate gcc | grep -E "/usr/bin/gcc-[0-9]"
locate g++ | grep -E "/usr/bin/g++-[0-9]"

通過locate可以發現, 我們系統中安裝了gcc-4.8和gcc-6兩個gcc版本

2.5 切換gcc/g++版本


出與安全和穩定性的考慮, 目前位置我們系統中gcc -v檢視到的版本仍然是gcc-4.8, 因此需要我們自己做連結

我們正常使用的gcc/g++其實都是/usr/bin/gcc/usr/bin/g++, 他們指向了/usr/bin下真正版本的gcc/g++程式

因此我們只需要將標準的gcc/g++連線到我們期望的gcc/g++程式即可, 我們有如下兩種方式建立連結

  • 自己通過ln命令建立連結

  • 通過update-alternatives建立檔案關聯

自己通過ln命令建立連結

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 g++
sudo rm g++
sudo ln -s g++-6 g++

通過update-alternatives建立檔案關聯

如果安裝了同一個軟體的不同版本,可以使用update-alternatives命令設定預設使用哪個版本,典型的如在Ubuntu 14.04裡安裝了gcc-4.8和gcc-6, 想讓gcc命令自動使用gcc-6版

  • 首先要讓系統知道我們安裝了多個版本的gcc
# 命令最後的 20和50是優先順序,如果使用auto選擇模式,系統將預設使用優先順序高的
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50

自此我們的系統就預設選擇了優先順序最高的gcc版本, 具體選擇依設定而定, 可以使用update-alternatives --config修改設定

  • 查詢系統中安裝有哪些版本
sudo update-alternatives --query gcc

  • 使用互動方式的命令選擇預設使用的版本
sudo update-alternatives --config gcc

同理修改g++的方式類似

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50

3 參照


其實我們還可以自己編譯新的gcc/g++來使用, 但是此過程很繁瑣, 且並不是我們今天內容的重點

Ubuntu 14.04 LTS 版升級到 GCC 4.9.2  http://www.linuxidc.com/Linux/2016-11/136836.htm

Ubuntu 14.04 LTS 下升級GCC到 GCC4.9、GCC5 版本  http://www.linuxidc.com/Linux/2016-11/136839.htm

ToolChain - Ubuntu Wiki

ToolChain test builds

Linux升級GCC 4.8.1清晰簡明教學(Ubuntu 12.04 64位元版為例)  http://www.linuxidc.com/Linux/2014-04/99583.htm 

Ubuntu 14.04 LST安裝GCC 4.1.2  http://www.linuxidc.com/Linux/2016-06/132040.htm

Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm 

Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm 

CentOS6.5升級手動安裝GCC4.8.2  http://www.linuxidc.com/Linux/2015-01/112595.htm 

GCC 的詳細介紹請點這裡

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-11/136840.htm


IT145.com E-mail:sddin#qq.com