前一陣子在做開發的時候遇到了一些小問題
就是有時候某些專案所指定的 gcc/g++ 必須使用特定的版本
但不幸的是這些專案都指定必須要使用 host gcc/g++ 的設定
所以就必須要讓多個 gcc/g++ 的版本共存在 host 端
但即便是已經存在了多個版本的時候還是會需要手動切換不同的版本
所以就有這篇了
先檢查看看有沒有 gcc/g++
因為 gcc/g++ 兩個使用的是完全一樣的動作
所以下面偷懶 只用 gcc 舉例
g++ 的部份就把 gcc 換成 g++ 就行了
查看當前 gcc 的版本
gcc -v
如果這樣沒有出現 gcc 的版本訊息的話
表示系統裡不存在 gcc
這時候需要先安裝 gcc/g++
安裝的指令
sudo apt-get install -y gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7
這邊安裝的 gcc 版本可以依照自己喜歡的選擇
如果這個時候發現想要的版本抓不下來的時候
也許還有其他選擇
改從其他地方抓
所以這個時候要先增加一個 repository
新增 repo
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test sudo apt update
如果這時候你的 gcc/g++ 版本很多很亂
也可以選擇先把它們全部移除
從 update-alternatives 移除所有的 gcc/g++
sudo update-alternatives --remove-all gcc sudo update-alternatives --remove-all g++
這樣會從 update-alternatives 中移除所有的 gcc/g++ 選項
對 update-alternatives 安裝想要的 gcc/g++
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 30 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
上面這些版本必須是前面剛剛已經先從 apt install 裝完的各個版本
每個指令最後的那個數字表示預設的優先度
數字越大就越高
設定 預設 gcc/g++ 的版本
最後在安裝完之後就是對 update-alternatives 進行設定sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --set c++ /usr/bin/g++
之後要切換版本的時候就只要執行 config 就可以了
切換 預設 gcc/g++ 的版本
sudo update-alternatives --config gcc sudo update-alternatives --config g++
大概是這樣
0 件のコメント:
コメントを投稿