네트워크 시뮬레이터 ns-2 nam 에러

다음과 같이 에러가 나는데요.
owner@ubuntu:~/ns-allinone-2.32/ns-2.32/tcl/ex$ nam:

[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D)}] units
}
bind Li…"
구글에 검색해 보니

http://forums.fedoraforum.org/showthread.php?t=206795

여기서 보니 패치를 받으라는데…
패치는 다운 받을 수 있는게 아니라 파일 형태로 열리고…
또 어디서는 내용을 바꾸라는데…
어디에 있는 무엇을 어떻게 바꿔야하는지도 잘 모르겠고,…
도와 주세요…
저는 ns-2 2.32 on 우분투 9.10입니다.

위의 글타래의 내용중 Tcl/tk 를 좀더 상위버젼으로 바꾸어서 문제를 해결한다는 방법이 잇죠.
패치 방법을 모르면 하위 디렉토리의 tcl tk 를 바꾸고 install 파일의 내용을 바꾸면 됩니다.

님이 찾으신 링크의 내용이나 nhamfnad 님 말씀대로
문제의 원인은 ns-2 속에 포함된 tk 버젼이 너무 낮기 때문에
발생하는 에러입니다.

왜들 2.32 버젼을 설치하시는지 알수가 없군요 .2007년에 나온 오래된 버젼인데?
어디 한글로 된 2.32 버젼 설치팁이라도 있어서 그런가요?

2.34 버젼은 2009년 6월에 나온 버젼으로 이미 패치가 다 되어 있는 버젼입니다.
2.34 버젼 설치해주면 제일 쉽죠.

[url:fihxwj29]http://downloads.sourceforge.net/project/nsnam/allinone/ns-allinone-2.34/ns-allinone-2.34.tar.gz?use_mirror=cdnetworks-kr-1[/url:fihxwj29]

2.32 를 꼭 써야한다면
버젼이 서로 달라 링크에 거론된 패치 파일을 직접 적용하기는 어려우실테니
직접 편집해서 필요한 부분을 추가하시든지
아니면 첨부한 파일을 내려받아 패치를 적용한후 다시 컴파일 하세요.

[code:fihxwj29]$ cp ns-allinone-2.32-tk-patch.diff.gz ns-allinone-2.32
$ cd ns-allinone-2.32
$ gzip -d ns-allinone-2.32-tk-patch.diff.gz

$ patch -p1 < ns-allinone-2.32-tk-patch.diff
patching file tk8.4.15/generic/tk.h
patching file tk8.4.15/generic/tkBind.c

$ ./install[/code:fihxwj29]

답변 감사 드립니다.
어찌 해보니 정상 작동합니다.
좋은 하루 되세요.

안녕하세요.

다름이 아니라, 궁금한 사항이 있어서 이렇게 글을 적습니다.

제가 새로운 프로토콜 코드를 구현하여(tcl, cc, 헤더파일 등)

폴더를 만들어 ns-2에 적용하려고 하는데요 (참고로 우분투 9.10, ns-2.34)

make depend 후

make를 하니,

다음과 같이 에러가 나는데요.

make[1]: Entering directory /root/ns-allinone-2.34/ns-2.34/indep-utils/cmu-scen-gen/setdest' make[1]: Nothing to be done for all’.
make[1]: Leaving directory /root/ns-allinone-2.34/ns-2.34/indep-utils/cmu-scen-gen/setdest' make[1]: Entering directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/dec’
make[1]: Nothing to be done for all'. make[1]: Leaving directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/dec’
make[1]: Entering directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/epa' make[1]: Nothing to be done for all’.
make[1]: Leaving directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/epa' make[1]: Entering directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/nlanr’
make[1]: Nothing to be done for all'. make[1]: Leaving directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/nlanr’
make[1]: Entering directory /root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/ucb' make[1]: Nothing to be done for all’.
make[1]: Leaving directory `/root/ns-allinone-2.34/ns-2.34/indep-utils/webtrace-conv/ucb’

혹시 왜 그런지, 그리고 해결방법은 없는지 궁금하네요.

도움 부탁드릴게요.

좋은 하루 되세요.

Nothing to be done for `all’.

말그대로 all 명령에 해당하는 일을 할 필요가 없다는겁니다. 에러는 아니구여 이미 이전에 컴파일된 오프젝트 파일때문에 더이상 컴파일을 하지않은 겁니다.(make depend – 기존 오프젝 파일을 쓴다는 명령)

제대로 새로 만든 모듈이 기존의 모듈과 잘 맞물려 돌아가는지 확인하기 위해서도 좀 번거롭고 귀찮은 작업이지만,

make clean; make

명령을 주는 습관이 필요합니다.

감사합니다.
저는 그것도 모르고, 이게 에러인지 알고…
그럼 이제 제 프로토콜을 한번 돌려볼수 있는건가요?
좋은 하루되세요…