ubuntu16.04下安装NS-2.35以及对simple例的理解

Posted 少年闰土

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu16.04下安装NS-2.35以及对simple例的理解相关的知识,希望对你有一定的参考价值。

  本人是在VMWare上安装的ubuntu16.04版本,然后安装NS2.35.

1.下载ns2的安装包,这里我选择的是ns-allinone-2.35.tar.gz压缩格式的all in one安装包,all in one 安装包包含所有的组件,比较方便,另附下载地址:

http://www.isi.edu/nsnam/ns/ns-build.html

  

2.安装前要先进行一些准备工作进行配置环境,输入如下代码:

$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.ns2的解压和安装(也可以在ubuntu下联网用命令下载安装)

首先把ns-allinone-2.35.tar.gz复制到home/xxx的文件夹下。xxx代表是你自己设置的ns2文件夹。然后进入终端,依次输入

tar -xzvf ns-allinone-2.35.tar.gz

cd ns-allinone-2.35

./install

不出意外的话,这一部分肯定是要出现各种各样的问题的,比如我出现的问题是:

 

linkstate/ls.h:137:27: note: declarations in dependent base ‘std::map<int, LsIdSeq, std::less<int>, std::allocator<std::pair<const int, LsIdSeq>>>’ are not found by unqualified lookup

linkstate/ls.h:137:27: note: use ‘this->erase’ instead

make: *** [linkstate/ls.o] Error 1

Ns make failed!

 

 编辑ns-2.35/linkstate/ls.h,即

gedit ns-2.35/linkstate/ls.h

将第137行的代码由

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

改为

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

也就是把erase用this->erase替换掉就好了。

再次执行./install就可以安装成功了。

因为每个人的计算机不一样所以出现的问题也可能不一样所以建议大家出现问题去用google去查。

4.配置环境变量

如果安装成功,终端会提示配置环境变量,包括PATH,LD_LIBRARY_PATH,TCL_LIBRARY三种环境变量。

重新打开一个终端,输入:

sudo gedit .bashrc

在文件最后添加如下代码:

 

export PATH=$PATH:/home/xxx/ns-allinone-2.35/bin:/home/xxx/ns-allinone-2.35/tcl8.5.10/unix:/home/xxx/ns-allinone-2.35/tk8.5.10/unix

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/ns-allinone-2.35/otcl-1.14:/home/xxx/ns-allinone-2.35/lib

export TCL_LIBRARY=$TCL_LIBRARY:/home/xxx/ns-allinone-2.35/tcl8.5.10/library
//注意两个环境变量路径之间要用冒号:隔开

 

然后运行:

source .bashrc

就完成了环境变量的配置。

5.安装完成的验证

重新打开一个终端,输入:

ns

如果出现%就证明ns2已经安装成功了。

如果没有出现%,可以重新在终端输入:

source .bashrc
ns

这时候应该就完美的出现了%,证明ns2应经安装好了。

6.实例example

在终端输入:

cd ns-allinone-2.35/ns-2.35/tcl/ex

ns example.tcl

如果出现了数据,证明ns2运行正常。

再输入

ns simple.tcl

如果出现nam的控制窗口和帮助屏,则表示nam安装成功。可以在nam控制窗口进行动画演示。自此,ns2.35完全安装成功。

 

Nam 无法启动

 

进入nam目录:cd ns-allinone-2.35/nam-1.15
进入后sudo ./configure,然后sudo make
最后sudo make install
命令行输入nam弹出nam console说明nam安装成功。
注意:如果通过“sudo apt-get install nam”安装的nam,执行nam命令会报异常
“段错误,核心文件已转储
遇到该问题的网友可以“sudo apt-get remove --purge nam”卸载nam及其配置后按Step6安装。

 

将tcp协议分组和延时用gnuplot显示出来,先安装gnuplot :sudo apt-get install gnuplot -x11

然后gawk -f exmple.tcl out.tr > pc(先安装gawk命令)

终端下:

gnuplot

plot ‘pc‘ with lines显示出界面。 

 

 

 









以上是关于ubuntu16.04下安装NS-2.35以及对simple例的理解的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu14+ns2

Ubuntu16.04 下安装PHP+apache2+mysql以及MySQL扩展

Ubuntu16.04下keras安装

win7 下安装 Ubuntu16.04以及Centos6.5 双系统小结

运行 MDART 协议时出现 NS 2.35 分段错误(核心转储)

Ubuntu16.04下安装新QQ