리눅스2010. 5. 1. 13:52
반응형

살다보니 프로그램을 다운그레이드 하는 일도 있구나...

gcc 버전이 맞지 않아 내 ubuntu에서 ns2가 예전 버전이 컴파일이 안된다...

그래서 OS를 새로 설치하기는 싫어서 gcc를 다운그레이드 하기로 했다...

현재 ubuntu 8.04를 쓰고 있으며, 여기 gcc의 버전은 4.1.2이다...

다운그레이드 하려고 하는 gcc는 3.x대 버전으로 그 중 최신인 gcc 3.4.6을 설치할 것이다.

다행히 구글신을 검색해보니 다운그레이드 하더라도 두 컴파일러를 모두 쓸 수 있다고 한다...

gcc 컴파일러의 3.x대 버전과 4.x대 버전의 가장 큰 차이는

void func(char str[]) {
}

을 3.x 버전에서는 warning으로 처리하던 것을 4.x 버전에서는 error처리를 한다는 것이다...-_-;;

(물론 내가 겪은 문제는 이것이 아니고 g++ STL에서의 vector와 관련된 에러였다.)

4.x 버전에서 error가 없으려면

void func(char *str) {
}

요렇게 처리를 해야지 error가 생기지 않는다고 한다.

일단 3.4 버전의 gcc를 설치한다

$sudo apt-get install gcc-3.4

라고 치면 자동으로 설치가 된다.

그 이후

$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 50

를 실행한다.

데비안 계열 리눅스에서는 대체 시스템(alternatives)이 있어서 같은 일을 하는 패키지가 여러 종류일 때

이를 쉽게 변경할 수 있다.

gcc 명령을 실행했을 때 gcc 3.3, gcc 3.4, gcc 4.1, gcc 4.2중에 어떤 것을 선택할지 결정할 수 있다.

javac 명령을 실행했을 때 JDK 1.5나 JDK 1.6을 골라서 실행할 수 있는 것과 같다.

대체 시스템은 시스템에 정해진 것이 아니라 관리자가 원하는대로 만들 수 있다.

반응형
Posted by pmj0403