NS2.34安装

1、首先下载

Google 一下ns2,下载allinone包到本地

2、安装编译必须的软件包

sudo apt-get remove gcc  #移除gcc
sudo apt-get install build-essential #for gcc and someessential
sudo apt-get install tcl8.4 tcl8.4-dev tk8.4tk8.4-dev   #for tcl and tk
sudo apt-get install libxmu-devlibxmu-headers   #for nam

3、解压1中下载的安装包到指定目录

先将安装包复制到:/usr

再解压:sudo tar -xzf ns-allinone-2.34.tar.gz

4、在安装之前先修改一些配置文件,否则出错

cd /usr/ns-allinone-2.34/otcl-1.13

sudo gedit configure.in

把77行的SHLIB_LD="ld -shared",改为SHLIB_LD="gcc -shared",保存退出。

然后 sudo gedit configure

Ctrl+F了一下,在6304行找到了。把SHLIB_LD="ld -shared"改为SHLIB_LD="gcc-shared",保存退出。

5、安装

cd /usr/ns-allinone-2.34 #到安装目录

sudo ./install   #开始安装

6、环境配置

用cd进入目录/home/**(**是用户名),然后

sudo gedit .bashrc

在文件末尾加入:(/use安装目录)

PATH="$PATH:/usr/ns-allinone-2.34/bin:/usr/ns-allinone-2.34/tcl8.4.18/unix:/usr/ns-allinone-2.34/tk8.4.18/unix"

LD_LIBRARY_PATH="/usr/ns-allinone-2.34/otcl-1.13:/usr/ns-allinone-2.34/lib"

TCL_LIBRARY="$TCL_LIBRARY:/usr/ns-allinone-2.34/tcl8.4.18/library"

保存退出(上述内容在安装结束后的提示中有,见粗体部分)。

7.  

  安装的过程中,可能出现如下问题:

            错误一: tools/ranvar.cc: In member function ‘virtual doubleGammaRandomVariable::value()’: tools/ranvar.cc:219:70: error:cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’directly tools/ranvar.cc:219:70: error: for a function-style cast,remove the redundant ‘::GammaRandomVariable’ make: ***[tools/ranvar.o]错误1 Ns make failed! Seehttp://www.isi.edu/nsnam/ns/ns-problems.html for problems
                 解决办法: 在ns-allinone-2.34/ns-2.34/tools文件夹下,找到报错提示中的ranvar.cc文件,打开找到对应的219行删除::GaammaRandomVariable,保存, 即:将219行的 returnGammaRandomVariable::GammaRandomVariable(1.0 + alpha_,beta_).value() * pow (u, 1.0 / alpha_); 改为: returnGammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 /alpha_); 然后保存退出,重新安装ns2。
                  错误二: In file included from mac/mac-802_11Ext.cc:66:0:mac/mac-802_11Ext.h: 在成员函数‘u_int32_t PHY_MIBExt::getHdrLen11()’中:mac/mac-802_11Ext.h:175:19: 错误: expected primary-expression before‘struct’ mac/mac-802_11Ext.h:175:41: 错误: ‘dh_body’在此作用域中尚未声明mac/mac-802_11Ext.h:175:51: 错误: ‘offsetof’在此作用域中尚未声明mac/mac-802_11Ext.h:177:3: 警告: 在有返回值的函数中,控制流程到达函数尾[-Wreturn-type]
                  解决办法: 在ns-allinone-2.34 s-2.34\mac\mac-802_11Ext.h 文件添加#include<cstddef>然后重新安装,就OK了。
                  错误三: mobile/nakagami.cc: 在成员函数‘virtual doubleNakagami::Pr(PacketStamp*, PacketStamp*, WirelessPhy*)’中:mobile/nakagami.cc:185:67: 错误:不能直接调用构造函数‘GammaRandomVariable::GammaRandomVariable’ [-fpermissive]mobile/nakagami.cc:185:67: 错误:对于函数类型的类型转换,移除冗余的‘::GammaRandomVariable’ [-fpermissive]
                  解决办法: 在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(); 重新在ns目录下键入$./install安装,再次出现同类问题时,仿照此次解决方法,找到对应的文件和行数,修改即可。 

                 错误四:In file included fromlinkstate/ls.cc:67:0:
linkstate/ls.h: In instantiation of ‘void LsMap::eraseAll() [withKey = int; T = LsIdSeq]’:
linkstate/ls.cc:396:28: required from here
linkstate/ls.h:137:20: error: ‘erase’ was not declared in thisscope, and no declarations were found by argument-dependent lookupat the point of instantiation [-fpermissive]
linkstate/ls.h:137:20: note: declarations in dependent base‘std::map, std::allocator > >’ arenot found by unqualified lookup
linkstate/ls.h:137:20: note: use ‘this->erase’instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!

                解决办法:修改ls文件:ns-2.34/linkstate/ls.h 

第137行

void eraseAll() { erase(baseMap::begin(), baseMap::end()); }

改为:void eraseAll() {this->erase(baseMap::begin(), baseMap::end()); }

8、安装验证(可选)

打开一个新终端,输入ns,如果出现%,则说明安装成功。

也可以进入/usr/ns-allinone-2.34/ns-2.34/,输入./validate验

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值