여러 gcc와 그 사이의 링크

여러 gcc와 그 사이의 링크

저는 gcc 4.4.6과 함께 제공되는 centOS 6.3을 실행하고 있으며 다음을 사용하여 gcc 4.6.3을 설치했습니다.이 지침.

하지만 입력하면 gcc -v여전히 gcc 4.4가 내가 사용 중인 버전이라고 나옵니다. 최신 버전은 /opt/gcc-4.6.3에 있습니다.

명령을 실행할 때 make최신 gcc를 사용하려면 경로를 지정해야 합니까 ? 그렇다면 어떻게 해야 하나요? 아니면 이전 버전을 새 버전으로 완전히 교체할 수 있나요? 미리 감사드립니다.

답변1

make환경 변수를 설정하여 C 컴파일에 어떤 프로그램을 사용할지 알 수 CC있으며 CXXC++에서도 마찬가지입니다. (기본 규칙을 사용하거나 적어도 복사한다고 가정합니다. gcc의 명시적인 실행 파일 이름으로 Makefile을 작성하면 작동하지 않습니다.) 그렇지 않으면 다음과 같은 것을 다음과 같이 입력하십시오 .profile.

export CC=/opt/gcc-4.6.3/<path to cc>  CXX=/opt/gcc-4.6.3/<path to g++>

PATH에 /opt/gcc-4.6.3/bin(실행 파일이 있는 경우)을 추가하기만 하면 됩니다.

답변2

먼저 rici의 답변 덕분에 그의 방법이 효과가 있었지만 방금 나에게 더 잘 맞는 방법을 찾았습니다.

먼저 문제가 발생할 경우를 대비해 이전 gcc를 다른 이름으로 저장했습니다.

mv /usr/bin/gcc /usr/bin/gcc_old
mv /usr/bin/g++ /usr/bin/g++_old

그런 다음 새 빌드를 gcc에 연결하고 몇 가지 중요한 내용을 복사했습니다.

ln -s -f /opt/gcc-4.6.3/bin/gcc /usr/bin/gcc
ln -s -f /opt/gcc-4.6.3/bin/g++ /usr/bin/g++

cp /opt/gcc-4.6.3/lib64/libstdc++.so.6.0.16 /usr/lib64/.
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s -f /usr/lib64/libstdc++.so.6.0.16 /usr/lib64/libstdc++.so.6

도움을 준 힙합 Facebook git 팀의 Jacky Wei에게 감사드립니다.

관련 정보