Linux下修改gcc和g++的版本

無鞋童鞋發表於2017-11-30

  1 前言
  最近,自己在linux除錯matlab的mex的時候,突然發現matlab R2015版本對應的mex適配環境是gcc-4.7,而自己ubuntu的Linux對應版本預設卻是gcc-4.8.5,所以涉及到一個版本下調的工作。最後自己在一頓搗鼓後終於解決了這個問題,本著方便大家的修改,這裡我詳細介紹一下自己的修改方法。
  2 修改gcc連結檔案
  首先,我們自然是需要下載gcc-4.7版本的程式以及安裝,ubuntu下如下操作:

sudo apt-get install gcc-4.7

  等下載安裝完成之後,我們可以去/usr/bin/目錄下看到一些gcc開頭的檔案,其中有一個是gcc,他是個連結檔案,連結到當前版本的gcc檔案(例如我的電腦就是gcc-4.8),也即是說,他是連結到當前使用的gcc上的,所以改變他的連結原始檔就可以了,也就是讓gcc這個連結檔案連結到當前資料夾下的gcc-4.7版本可執行檔案上。操作如下,首先刪除這個連結檔案(當然需要超級使用者許可權):

sudo rm /usr/bin/gcc

  然後就是建立一個新的gcc連結檔案,讓其連結的是gcc-4.7版本。如下操作

sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc

  到此,有些人的機器或許已經可以如願修改完成了,但是我的機器卻沒有。你可以通過下面命令檢視:

gcc --version  # 或者 gcc -v

  最後發現我的電腦卻還是gcc-4.8.5的版本。但是我操作/usr/bin/gcc --version卻發現這個gcc的版本的確是gcc-4.7,也就是說我上面的連線操作是沒有問題的。只能說明本機系統上gcc預設執行的並不是/usr/bin目錄下的可執行檔案,而是另一個目錄。最後通過gcc -v查詢的確如我所言,gcc對應的是在另一個目錄下的可執行檔案。
  好了,下面的工作當然是讓系統在我們輸入gcc命令後,優先選擇/usr/bin目錄下的gcc可執行檔案。
  3 修改gcc的優先執行目錄
  gcc的優先執行目錄最簡單的修改方式是對PATH環境變數的修改,讓/usr/bin目錄在最前面定義,這樣系統依次遍歷PATH環境變數中的查詢地址的時候,一旦先在/usr/bin中找到gcc命令,自然先執行這個。
  修改臨時的自然有export方式,但是我們還是希望永久修改,方法如下:

vim ~/.bashrc # 開啟配置檔案

  然後在檔案的結尾加上以下一條命令:

export PATH="/usr/bin:$PATH"

  為了不用重啟機器就讓檔案被重新整理執行,如下操作:

source ~/.bashrc 

  好了,到此你再檢視gcc版本應該就是對應到gcc-4.7版本了。
  g++的版本修改也一樣操作,當時需要注意,它的版本記號為g++-4.7,不要忘記了中間的“-”哦。另外,操作完成之後還需要執行一下:source ~/.bashrc。不然g++預設優先查詢路徑並不是/usr/bin。


  個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!
  轉載請註明出處:http://blog.csdn.net/FX677588/article/details/78681325

相關文章