歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu升級GCC版本

Ubuntu升級GCC版本

日期:2017/2/28 13:47:25   编辑:Linux教程

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 的詳細介紹:請點這裡

Copyright © Linux教程網 All Rights Reserved