ArchLinuxがインストールされ、gccバージョンが2つあります。デフォルト値(「gcc」)は「gcc(GCC)7.1.1」、「gcc-5」は「gcc-5(GCC)5.4.0」です。
gcc(およびg ++)バージョンが5以下であることを確認するために、いくつかのプロジェクトをビルドする際に問題があります。 (より具体的には、nvidiaでcuda-8.0の公式実行可能ファイルをインストールするか、使用されたプロジェクトcudaライブラリとそのヘッダファイルをビルドします。)
私が望むのは、Debianに似たディストリビューションの "update-alternatives"ソリューションと同様に、私の環境でgccのデフォルトバージョンを(一時的に)変更し、完了したらリセットすることです。
私の/usr/binにあるgccとg ++関連のバイナリに関する情報は次のとおりです。
$ ls -l | grep gcc
lrwxrwxrwx 1 root root 3 Jun 30 16:49 cc -> gcc
-rwxr-xr-x 3 root root 997840 Jun 30 16:49 gcc
-rwxr-xr-x 3 root root 873352 Jul 11 2016 gcc-5
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 gcc-ar
-rwxr-xr-x 2 root root 25544 Jul 11 2016 gcc-ar-5
-rwxr-xr-x 2 root root 875720 Jul 11 2016 gccgo-5
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 gcc-nm
-rwxr-xr-x 2 root root 25512 Jul 11 2016 gcc-nm-5
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 gcc-ranlib
-rwxr-xr-x 2 root root 25512 Jul 11 2016 gcc-ranlib-5
-rwxr-xr-x 3 root root 997840 Jun 30 16:49 x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 3 root root 873352 Jul 11 2016 x86_64-pc-linux-gnu-gcc-5
-rwxr-xr-x 3 root root 873352 Jul 11 2016 x86_64-pc-linux-gnu-gcc-5.4.0
-rwxr-xr-x 3 root root 997840 Jun 30 16:49 x86_64-pc-linux-gnu-gcc-7.1.1
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 x86_64-pc-linux-gnu-gcc-ar
-rwxr-xr-x 2 root root 25544 Jul 11 2016 x86_64-pc-linux-gnu-gcc-ar-5
-rwxr-xr-x 2 root root 875720 Jul 11 2016 x86_64-pc-linux-gnu-gccgo-5
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 x86_64-pc-linux-gnu-gcc-nm
-rwxr-xr-x 2 root root 25512 Jul 11 2016 x86_64-pc-linux-gnu-gcc-nm-5
-rwxr-xr-x 2 root root 27104 Jun 30 16:49 x86_64-pc-linux-gnu-gcc-ranlib
-rwxr-xr-x 2 root root 25512 Jul 11 2016 x86_64-pc-linux-gnu-gcc-ranlib-5
答え1
全長DR:sudo ln -s $(which gcc-5) /usr/local/bin/gcc; hash -r
デフォルトでは、gccバイナリは次の場所にあります。/usr/bin
ルートを確認すると、これが/usr/local/bin
最初に出てくることがわかります。
echo $PATH | tr ':' '\n'
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
. . .
したがって、gcc-5()がインストールされていると仮定すると、次のyaourt --noconfirm -S gcc5
シンボリックリンクを作成して「デフォルト」バージョンにすることができます。/usr/local/bin
sudo ln -s $(which gcc-5) /usr/local/bin/gcc
sudo ln -s $(which g++-5) /usr/local/bin/g++
次に、以前に記憶されたgccの場所を削除するためにgccを再ハッシュする必要があります。
hash -r
gccの元の「デフォルト」バージョンを復元するには、単にシンボリックリンクを削除して再ハッシュするだけです。
sudo rm /usr/local/bin/gcc /usr/local/bin/g++
hash -r