2021-05-12 14:32:11
Ubuntu升級GCC版本
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
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
相關文章