本文主要介绍在Ubuntu 14.04系统下,ns2.35的安装过程,本次选择的版本是2.35最新版本,安装环境是Ubuntu 14.04,其他系统环境和ns的版本安装过程相似,均可参考本文流程。
PS:出现
Bug
,Error
一定用用Google解决,Google大法好!
下载ns2的安装包
这里我选择的是ns-allinone-2.35.tar.gz
压缩格式的all-in-one
安装包,all-in-one
安装包包含所有的组件,比较方便,另附下载地址:
Link: http://www.isi.edu/nsnam/ns/ns-build.html
安装前环境配置
输入如下代码:1
2
3$sudo apt-get install build-essential
$sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
$sduo apt-get install libxmu-dev libxmu-headers
ns2的解压和安装
首先把ns-allinone-2.35.tar.gz
复制到home/xxx
的文件夹下。xxx
代表是你自己设置的ns2
文件夹。然后进入终端,依次输入1
2
3tar -xzvf ns-allinone-2.31.tar.gz
cd ns-allinone-2.31
./install
不出意外的话,这一部分肯定是要出现各种各样的问题的,比如我出现的问题是:1
2
3
4linkstate/ls.h:137:58: 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:58: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!
这个很简单,只要编辑ns-2.35/linkstate/ls.h
,即1
gedit ns-2.35/linkstate/ls.h
将第137行的代码由1
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改为1
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
也就是把erase
用this->erase
替换掉就好了。
再次执行./install
就可以安装成功了。
Tips:
由于每个人的机器环境条件不一样,出现的错误也不一样,所以有可能遇见各种各样的问题。这里建议大家讲bug代码粘贴到google中去搜索,一般都可以解决的。
重要的事情说三遍:
一定要用google!
一定要用google!
一定要用google!
配置环境变量
如果安装成功,终端会提示配置环境变量,包括PATH
,LD_LIBRARY_PATH
,TCL_LIBRARY
三种环境变量。
重新打开一个终端,输入:1
sudo gedit .bashrc
在文件最后添加如下代码:
1 | export PATH=$PATH:/home/xxx/ns-allinone-2.31/bin:/home/xxx/ns-allinone-2.31/tcl8.4.14/unix:/home/xxx/ns-allinone-2.31/tk8.4.14/unix |
然后运行:1
source .bashrc
就完成了环境变量的配置。
安装完成的验证
重新打开一个终端,输入:1
ns
如果出现%
就证明ns2
已经安装成功了。
如果没有出现%
,可以重新在终端输入:1
2source .bashrc
ns
这时候应该就完美的出现了%
,证明ns2
应经安装好了。
实例example
在终端输入:1
2cd ns-allinone-2.31/ns-2.31/tcl/ex
ns example.tcl
如果出现了数据,证明ns2运行正常。
再输入1
ns simple.tcl
如果出现nam
的控制窗口和帮助屏,则表示nam
安装成功。可以在nam
控制窗口进行动画演示。自此,ns2.35
完全安装成功。