-
NS2中解决nam [code omitted because of length]错误
日期:2009-09-03 | 分类:linux
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://qhwang.blogbus.com/logs/45660514.html
注意:博文已迁至新博客,请查看新博文http://www.eyelifes.net/?p=159按照上篇文章安装成功NS2后,可以运行ns命令,但是却不能运行nam图形界面,输入
>nam
提示出现下列错误
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox {
%W yview scroll [expr {- (%D)}] units
}
bind Li..."这下可让我摸不着头脑了,因为我之前在我的机器上是成功安装NS2.34的,并且nam也是可以运行的,为什么到ns2.31就不行了呢,google了下这个问题,发现原来是由于nam调用的tk组件和xproto-7.0.13不兼容导致的(xproto-7.0.13 新添加了 GenericEvent)。
有了原因就有解决方法了,看了网上的解决方法,都说的不清不楚,网上说(以下是原话)
“
可以到这里下载补丁http://bugs.gentoo.org/show_bug.cgi?id=225999
或者新建一个记事本复制一下内容到里面,保存,命名为“tk-8.4.18-tkBind.patch”(将.txt后缀名改为.patch)
--- tk8.4.18-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200
+++ tk8.4.18/generic/tkBind.c 2008-07-05 12:17:10.000000000 +0200
@@ -586,6 +586,9 @@
/* ColormapNotify */ COLORMAP,
/* ClientMessage */ 0,
/* MappingNotify */ 0,
+#ifdef GenericEvent
+ /* GenericEvent */ 0,
+#endif
/* VirtualEvent */ VIRTUAL,
/* Activate */ ACTIVATE,
/* Deactivate */ ACTIVATE,”
我按照上述方法试了一下,没有成功,很郁闷。后来经过一段时间的摸索,终于成功了,原来
http://bugs.gentoo.org/show_bug.cgi?id=225999这里的#comment2是其所说的补丁
然后我按其说的建个文档输入上树内容,打补丁,出现了一些错误
后来学习了下patch的用法于patch文件的语法,终于有了点头脑(见我的转载文章:转载 Linux下patch的制作和应用)
原来作者的意思就是在tk-8.4.14/generic/tbBind.c的第588行添加:
#ifdef GenericEvent
/* GenericEvent */ 0,
#endif后来我就干脆不用补丁了,而是自己手动修改。
然后重新安装就可以了!就这么简单。
历史上的今天:
patch过程中对.rej文件的处理方法 2009-09-03转载:Linux下patch的制作和应用 2009-09-03ubuntu9.04 安装配置NS2 2009-09-03解决hythmboxd、movieplayer中文乱码问题 2009-09-03ubuntu9.04 配置南大bras 2009-09-03
收藏到:Del.icio.us








评论
failed)
再运行例子这个问题还是存在呢,这是为什么呢?
$ ns example2.tcl
Administrator@CD7D5256FAE5491 /home/administrator/ns-allinone-2.28/ns-2.28/ns-tutorial/examples
$ 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
}"