반응형
OS: Ubuntu 8.04 desktop

우분투8.04 설치 직후 시냅틱 패키지 관리자로 전체 업데이트까지 하고 나니 gcc-3.4와 gcc-4.2가 설치되어 있다. (2009년 4월 22일 현재)
현재 apt-get install을 통해 gcc 이전 버전도 설치할 수 있는데(apt-get install로는 gcc-3.3이 설치되는 것을 확인하였다. 이전버전들은 대부분 apt-get install로는 안되는 것 같은데 모르겠음), 설치되어 있는 gcc 버전을 바꾸는 방법은 링크만 바꿔주면 되어서 간단하다.

gcc-4.2에서 3.4로 바꾸기:
$ sudo rm /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc

바뀐 버전 확인:
$ gcc -v



반응형
블로그 이미지

Bryan_

,
반응형
OS: Ubuntu 8.04.1 desktop
ns2 시뮬레이터 버전: 2.33

참고서적 [1]을 보고, ns-2.33에서 멀티 인터페이스/멀티 채널 부분을 보고 수정한 뒤,

$ make clean
$ make
를 실행했더니, 아래와 같은 에러가 뜨면서 중단되었다.

`.gnu.linkonce.t._ZN11taskPending10taskStatusEh' referenced in section `.rodata' of wpan/p802_15_4mac.o: defined in discarded section `.gnu.linkonce.t._ZN11taskPending10taskStatusEh' of wpan/p802_15_4mac.o

구글을 뒤져 봐도 정확한 원인을 모르겠다. 다만 해결방법은 추측성으로 gcc와 bash의 버전을 바꾸면서 컴파일에 성공했다는 정도로 적혀 있었다.
OS의 다른 환경은 그대로 두고 gcc 버전만 바꾸면서 테스트한 바로는, gcc-4.2, gcc-3.4.6, gcc-3.3.6 까지는 똑같은 에러가 발생했다. 아이러니하게도 주변 선배들 얘기로는 내가 테스트 안해본 gcc-3.3 이전 버전에서는 아마도 될 거라는... -_-

어쨌든 gcc의 버전에 상관없이 ns-2의 Makefile이 gcc를 디버그 모드로 동작하도록 했더니 문제없이 컴파일에 성공하였다.

디버그 모드로 make하는 방법은: ns-2가 설치된 디렉토리로 이동하여,
$ ./configure --enable-debug
$ make clean
$ make




* 참고서적
[1] 장영민 외, "ns-2 네트워크 시뮬레이터의 활용", 홍릉과학출판사
반응형
블로그 이미지

Bryan_

,