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 라이브러리 및 해당 헤더 파일을 빌드합니다.)
내가 원하는 것은 데비안과 유사한 배포판의 "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