您的位置:首页 > 其它

ns-2.29在Ubuntu8.04中的安装

2009-06-09 22:33 330 查看
一、用ubuntu装ns2之前要装的库文件:
(1).sudo apt-get install build-essential
(2).安装tk,tcl
sudo apt-get install tcl8.4
sudo apt-get install tcl8.4-dev
sudo apt-get install tk8.4
sudo apt-get install tk8.4-dev
(3 )sudo apt-get install libxmu-dev,是和nam有关的东西。
(4) 修改/nam-1.11/agent.h,第73行的NULL为0
二、问题
checking system version (for dynamic loading)...
./configure: line 7624:syntax error near unexpected token `)'
./configure: line 7624: ` OSF*)'
tcl8.3.2 configuration failed! Exiting ...
Tcl is not part of the ns project.
解决办法:
在ns-allinone-x.xx目录下
$ grep 'system=MP-RAS-' */* -n
$ grep 'system=MP-RAS-' */*/* -n
$ grep 'system=MP-RAS-' */*/*/* -n
把那些文件里的
system=MP-RAS-`awk ' { print $3 } '/etc/.relid'`
改为:
system=MP-RAS-`awk ' { print $3 } '/etc/.relid`也就是那行多了一个'号
1)
./sctp/sctp.h:632: 错误:有多余的限定‘SctpAgent::’在成员‘DumpSendBuffer’上
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [trace/trace.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/sctp/sctp.h
void SctpAgent::DumpSendBuffer();
改为:
void DumpSendBuffer();
2)
./mobile/god.h: At global scope:
./mobile/god.h:88: 错误:有多余的限定‘vector::’在成员‘operator=’上
./mobile/god.h:93: 错误:有多余的限定‘vector::’在成员‘operator+=’上
./mobile/god.h:98: 错误:有多余的限定‘vector::’在成员‘operator==’上
./mobile/god.h:101: 错误:有多余的限定‘vector::’在成员‘operator!=’上
make: *** [src_rtg/sragent.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/mobile/god.h
inline void vector::operator=(const vector a)
inline void vector::operator+=(const vector a)
inline int vector::operator==(const vector a)
inline int vector::operator!=(const vector a)
改为:
inline void operator=(const vector a)
inline void operator+=(const vector a)
inline int operator==(const vector a)
inline int operator!=(const vector a)
3)
dsr/dsragent.cc:787: 错误:‘XmitFlowFailureCallback’在此作用域中尚未声明
dsr/dsragent.cc:1344: 错误:‘XmitFailureCallback’在此作用域中尚未声明
make: *** [dsr/dsragent.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/dsr/dsragent.cc
+void XmitFlowFailureCallback(Packet *pkt, void *data);
+void XmitFailureCallback(Packet *pkt, void *data);
/*===========================================================================
SendBuf management and helpers
4)
diffusion/diffusion.cc:404: 错误:‘XmitFailedCallback’在此作用域中尚未声明
make: *** [diffusion/diffusion.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/diffusion.cc
#include "routing_table.h"
+void XmitFailedCallback(Packet *pkt, void *data);
char *MsgStr[]= {"", "INTEREST", "DATA", "DATA_READY", "DATA_REQUEST",
5)
diffusion/omni_mcast.cc:367: 错误:‘OmniMcastXmitFailedCallback’在此作用域中尚未声明
make: *** [diffusion/omni_mcast.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/omni_mcast.cc

#include "god.h"
+void OmniMcastXmitFailedCallback(Packet *pkt, void *data);
static class OmniMcastClass : public TclClass {
6)
tcp/tcp-sack-rh.cc:68: 错误:有多余的限定‘SackRHTcpAgent::’在成员‘newack’上
make: *** [tcp/tcp-sack-rh.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tcp/tcp-sack-rh.cc
virtual void computefack();
//virtual void SackRHTcpAgent::newack(Packet* pkt);
+virtual void newack(Packet *pkt);
7)
pgm/pgm-agent.cc:278: 错误:有多余的限定‘PgmAgent::’在成员‘trace_event’上
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_rdata(Packet*)’:
pgm/pgm-agent.cc:578: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_nak(Packet*)’:
pgm/pgm-agent.cc:727: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_ncf(Packet*)’:
pgm/pgm-agent.cc:824: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-agent.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-agent.cc
void print_stats();
-//void PgmAgent::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);
8)
pgm/pgm-sender.cc:160: 错误:有多余的限定‘PgmSender::’在成员‘trace_event’上
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::handle_nak(Packet*)’:
pgm/pgm-sender.cc:472: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::send_rdata(RdataItem*)’:
pgm/pgm-sender.cc:619: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-sender.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-sender.cc
-//void PgmSender::trace_event(char *evType, nsaddr_t daddr, double evTime);
+void trace_event(char *evType, nsaddr_t daddr, double evTime);
9)
pgm/pgm-receiver.cc:157: 错误:有多余的限定‘PgmReceiver::’在成员‘trace_event’上
pgm/pgm-receiver.cc: In member function ‘void PgmReceiver::generate_Nak(int)’:
pgm/pgm-receiver.cc:589: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-receiver.o] 错误 1
Ns make failed!
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-receiver.cc
-void PgmReceiver::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);

三、环境变量
在~/.bashrc尾部添加:
export PATH=$PATH:/usr/ns-allinone-2.33/ns-2.33:/usr/ns-allinone-2.33/nam-1.13:/usr/ns-allinone-2.33/bin:/usr/ns-allinone-2.33/tcl8.4.18/unix:/usr/ns-allinone-2.33/tk8.4.18/unix
export LD_LIBRARY_PATH=/usr/ns-allinone-2.33/otcl-1.13:/usr/ns-allinone-2.33/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=/usr/ns-allinone-2.33/tcl8.4.18/library:$TCL_LIBRARY

根据自己的安装目录,替换掉/usr/ns-allinone-2.33/。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: