ubuntu11.04下安装ns-allinone-2.34,网上收集的资料,真是费了好大功夫才装好

1.打开Ubuntu的终端,里面依次输入命令

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

2.为了更好的安装ns2,还需要进行一些package的安装,打开终端,输入

sudo apt-get install build-essential

sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev

sudo apt-get install libxmu-dev libxmu-headers

3.将下载的ns-allinone-2.34放在/home/yourfile/下,这里yourfile是用户自己定义的文件名,在终端中输入

tar zxvf ns-allinone-2.34.tar.gz

4.

查看过gcc版本之后,如果确实是4.0以上的版本,需要做以下修改:

  cd ns-allinone-2.34/otcl-1.13

  sudo gedit configure.in

  把77行处的

  SHLIB_LD="ld -shared"

  改为

  SHLIB_LD="gcc -shared"

  保存退出,然后

  sudo gedit configure

  把6304行(Ctrl+F)的

  SHLIB_LD="ld -shared"

  改为

  SHLIB_LD="gcc -shared"

  保存退出

5.

在ns-allinone-2.34/ ns-2.34/tools文件夹下,找到报错提示中的ranvar.cc文件,打开找到对应的219行删除::GaammaRandomVariable,保存,

即:将219行的

return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

改为:

return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

6.

在ns-allinone-2.34/ ns-2.34/ mobile文件夹下,找到报错提示中的nakagami.cc文件,打开找到对应的183行删除::ErlangRandomVariable,保存,

即:将183行的

resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value();

改为:

resultPower = ErlangRandomVariable(Pr/m, int_m).value();

在ns-allinone-2.34/ ns-2.34/ mobile文件夹下,找到报错提示中的nakagami.cc文件,打开找到对应的185行删除::GammaRandomVariable,保存,

即:将185行的

resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();

改为:

resultPower = GammaRandomVariable(m, Pr/m).value();

7.ns目录下键入$ ./install安装

8.

安装成功之后,输入命令ns之后出现如下错误:

*** buffer overflow detected ***: ns terminated

======= Backtrace: =========

/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x50)[0x451df0]

/lib/i386-linux-gnu/libc.so.6(+0xe4cca)[0x450cca]

/lib/i386-linux-gnu/libc.so.6(__strcpy_chk+0x3f)[0x45005f]

ns(TclTraceVariableObjCmd+0x420)[0x83adb00]

ns(Tcl_TraceObjCmd+0x469)[0x83b2989]

ns(TclEvalObjvInternal+0x37b)[0x839f2bb]

ns(Tcl_EvalEx+0x419)[0x83a11a9]

ns(Tcl_Eval+0x3c)[0x83a14cc]

ns(Tcl_GlobalEval+0x36)[0x83a2086]

ns(_ZN3Tcl4evalEPc+0x1b)[0x839438b]

ns(_ZN3Tcl5evalcEPKc+0xb3)[0x839435d]

ns(_ZN11EmbeddedTcl4loadEv+0x1d)[0x83952cf]

ns(Tcl_AppInit+0xb5)[0x83940ab]

ns(Tcl_Main+0x285)[0x83eb0c5]

ns(nslibmain+0x20)[0x8393fd4]

ns(main+0x1b)[0x8394147]

/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x382e37]

ns[0x81a8481]

======= Memory map: ========

00c38000-00c54000 r-xp 00000000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so

00c54000-00c55000 r--p 0001b000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so

00c55000-00c56000 rw-p 0001c000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so

00c5a000-00c5c000 r-xp 00000000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.0

00c5c000-00c5d000 r--p 00001000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.0

00c5d000-00c5e000 rw-p 00002000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.0

00cc0000-00ccd000 r-xp 00000000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.0

00ccd000-00cce000 r--p 0000c000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.0

00cce000-00ccf000 rw-p 0000d000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.0

00ef9000-00f0c000 r-xp 00000000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so

00f0c000-00f0d000 r--p 00012000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so

00f0d000-00f0e000 rw-p 00013000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so

.......(注:这里省略了部分错误提示语句)

bfbbb000-bfbdc000 rw-p 00000000 00:00 0 [stack]

已放弃

这是gcc的版本问题,解决方法如下:

1.安装gcc-4.4

输入:sudo apt-get intall gcc-4.4

2.安装g++-4.4

输入:sudo apt-get intall g++-4.4

3.修改tcl8.4.18/unix文件夹下的文件Makefile.in

将Makefile.in的270行:

CC = @CC@(注意此处,在Makefile.in中CC后面有很长到空格,所以用ctrl+f 搜CC,找到)

修改为:

CC = @CC@ -V 4.4

注意是大写的‘V’,这样gcc使用的参数版本为4.4。

重新安装ns2.34。.

9.

问题解决了之后,不要忘记添加环境变量啊!

新开一个终端

$sudo gedit .bashrc

在弹出的窗口文件最后输入(注意修改“yourfile”(就是自己NS上一级文件夹)

export PATH=$PATH:/home/yourfile/ns-allinone-2.34/bin:/home/yourfile/ns-allinone-2.34/tcl8.4.18/unix:/home/yourfile/ns-allinone-2.34/tk8.4.18/unix

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourfile/ns-allinone-2.34/otcl-1.13:/home/yourfile/ns-allinone-2.34/lib

export TCL_LIBRARY=$TCL_LIBRARY:/home/yourfile/ns-alllinone-2.34/tcl8.4.18/library

设置完成后运行./install

10.验证(测试)

   (1)打开一个新的终端

   (2)输入ns并回车

   $ns (如果正常,回出现"%"操作提示符)

11.安装nam等辅助软件 命令 sudo apt-get install nam

12.卸载软件的命令为 sudo apt-get autoremove nam

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值