Ubuntu更新后,相對應的gcc版本也會更新,有些程序需要調用到本地的gcc來編譯相對應的服務以及程序,在嵌入式linux開發中有時候需要本地的gcc來編譯一個交叉編譯器。基於這個原因有時候需要切換gcc的版本比如說高版本需要降低。之前一直使用手動安裝指定的gcc版本,然后通過更改gcc的鏈接位置達到切換gcc版本的目的,但是這個方法存在問題,比如在更新后,后續安裝VMware player的時候存在無法找到gcc 5.4因此正常安裝后但是無法打開,因為一下服務需要本地編譯,而VMware player只認gcc-5。因此解決方案如下。
使用
gcc -v 查看當前版本信息。若需要的gcc版本沒有安裝使用 sudo apt-get install gcc-× 指定的版本。
使用update-alternatives 命令配置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
使用如上的命令則在配置中加入了這兩個gcc版本的選項。
使用
sudo update-alternatives --config gcc
出現如下選項
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/gcc-4.8 50 auto mode
1 /usr/bin/gcc-4.8 50 manual mode
*2 /usr/bin/gcc-5 40 manual mode
設置以后通過 gcc -v查看當前版本信息。
如果需要刪除則使用:
sudo update-alternatives --remove gcc /usr/bin/gcc-4.8
拓展:
update-alternatives 是dpkg的一款工具,用來維護系統命令的符號鏈接,可以更改默認的命令。當然不局限於gcc,還可以更比如java的配置。具體相關,goolge update-alternatives可以得到詳細解答。