こちらのサイト を参考にした。

切替可能な gcc を一覧に登録するには、

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70

とする。ここで、 70 は優先順位を表し、大きい数値ほど優先順位が高くなる。

このとき、同時に、

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70

とすると、 gcc と g++ の2つのリストをそれぞれ別々に管理して別々に切り替えできそうに思うが、これだと g++ の方を設定しようとしたとき、 g++ は gcc のスレーブなのでだめ、と怒られエラーになる。

gcc, g++, gcov のバージョンを連動させて切り替える場合、 g++, gcov は gcc のスレーブなので、

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-5 --slave /usr/bin/gcov gcov /usr/bin/gcov-5

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 --slave /usr/bin/gcov gcov /usr/bin/gcov-6

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

として、連動して切り替わるように設定する。

この状態で、

sudo update-alternatives --config gcc

とすると、切り替え可能な gcc の一覧が表示され、 gcc のバージョンを選択することで、使用する gcc, g++, gcov のバージョンを連動させて選択することができる。

キーワード: gcc g++ gcov ubuntu