参考了网上各路高手才在自己的机子上安装成功
版本:ns-allinone-2.34
系统:linux mintreference links:http://blog.sina.com.cn/s/blog_6ddfdc6701018fk1.html
1.
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
sudo apt-get install xorg-dev g++ xgraph
sudo apt-get install g++-4.4
2.
cd ns-allinone-2.34/otcl-1.13
sudogedit configure.in
把77行处的
SHLIB_LD="ld-shared"
改为
SHLIB_LD="gcc-shared"
保存退出,然后
sudogedit configure
把6304行(Ctrl+i跳到6304行)的
SHLIB_LD="ld-shared"
改为
SHLIB_LD="gcc-shared"
保存退出,然后
cdns-allinone-2.34 #到安装目录
sudo./install #开始安装
3.chang the permission
4.
If you get error like:
mac/mac-802_11Ext.h: In member function ‘u_int32_t PHY_MIBExt::getHdrLen11()’:
mac/mac-802_11Ext.h:176:19: error: expected primary-expression before ‘struct’
mac/mac-802_11Ext.h:176:41: error: ‘dh_body’ was not declared in this scope
mac/mac-802_11Ext.h:176:51: error: ‘offsetof’ was not declared in this scope
open that file and add
#include <cstddef>
to the header files.
5.
解决方法:
在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安装,再次出现同类问题时,仿照此次解决方法,找到对应的文件和行数,修改即可。直到安装成功。
6.in ns-2.34/linkstate/ls.h line137
changge the erase to baseMap::erase
7.add environmental variable
export PATH=$PATH:/home/mark/ns-allinone-2.34/bin:/home/mark/ns-allinone-2.34/tcl8.4.18/unix:/home/mark/ns-allinone-2.34/tk8.4.18/unix
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mark/ns-allinone-2.34/otcl-1.13:/home/mark/ns-allinone-2.34/lib
export TCL_LIBRARY=$TCL_LIBRARY:/home/mark/ns-allinone-2.34/tcl-8.4.18/library