有: god.h 文件的第 88,93,98,101 行有多余的限定 vector::
5
tcp-sack-rh.cc 第 68 行有多余的限定 SackRHTcpAgent:: pgm-agent.cc 的第 307 行有多余的限定 PgmAgent:: pgm-sender.cc 的第 189 行有多余的限定 PgmSender:: pgm-receiver.cc 的第 186 行有多余的限定 PgmReceiver:: netgraph.h 的第 71 行有多余的限定 NetGraph:: parser.h 的第 97、98 行有多余的限定 ParseTable:: node.h 的第 226 行有多余的限定 Node:: 3.出现: dsr/dsragent.cc:828: 错误:‘XmitFlowFailureCallback’ 在此作用域中尚未声明 dsr/dsragent.cc:1385: 错误:‘XmitFailureCallback’ 在此作用域中尚未声明 dsr/dsragent.cc:1386: 错误:‘XmitFlowFailureCallback’在此作用域中尚未声明 dsragent.cc:1403: 错误:‘XmitFailureCallback’ 在此作用域中尚未声明 error1
make: *** [dsr/dsragent.o] Ns make failed!
See ::URL::isi.edu/nsnam/ns/ns-problems.html for problems 或者出现: diffusion/diffusion.cc:427: 错误:‘XmitFailedCallback’在此作用域中尚未声明 make: *** [diffusion/diffusion.o] Ns make failed! 即上述函数未作前置声明,需在对应文件中的加入相应函数的声明: void XmitFlowFailureCallback(Packet *pkt, void *data); void XmitFailureCallback(Packet *pkt, void *data); void XmitFailedCallback(Packet *pkt, void *data); 4.tcl 文件时出现“couldn't find nam.exe”,或者到 nam1.13 目录下运行“./configure”时,出 现“can't find X includes”。 说明 Cygwin 中缺少两个软件包 “libxt-devel” 、 “libXmu-devel” 。 重新下载后,再次安装 nam 即可。 5.调用 nam,出现如下问题时[11]: [code omitted because of length] : no event type or button # or keysym while executing "bind Listbox
{ error1
6
%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..."
即 nam 调用的 tk 组件和 xproto-7.0.13 不兼容导致的(xproto-7.0.13 新添加了 GenericEvent) 解决方法: 。 新建一个记事本复制一下内容到里面,保存,命名为“tk-8.4.
11-tkBind.patch”(将.txt 后缀名改为.patch)
--- tk8.4.11-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200 +++ tk8.4.11/generic/tkBind.c 2008-07-05 12:17:10.000000000 +0200 @@ -586,6 +586,9 @@ COLORMAP, 0, 0, +#ifdef GenericEvent + 0,
+#endif VIRTUAL, ACTIVATE, ACTIVATE,) 然后在 ns-allinone-2.29 下运行 patch -p0 < tk-8.4.11-tkBind.patch。会出现:
can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------|--- tk8.4.11-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200
7
|+++ tk8.4.11/generic/tkBind.c -------------------------File to patch:
2008-07-05 12:17:10.000000000 +0200
然后去查找需要打补丁的文件 tkBind.c,它在 NS-2.29 中的位置是: ~/ tk8.4.11/generic。在“File to patch: ”后填写好路径名和文件名,打上补丁。然后重装 Ns-2.29 和 nam。最后,需要将 Ns-2.29 中的“ns.exe”和 nam-1.11 中的“nam.exe”拷贝到 /usr/local/bin 下面。这样就能正常调用 ns 和 nam 了。
8