在安装ns2的过程中遇到了很多问题,为了记录这些问题和为同样遇到这些问题的朋友提供思路,写下这篇博文。
安装ns2和nam主要分为如下几个步骤:
- 安装与配置
- 安装nam
- 配置环境变量
- 检验是否能够成功运行
在ns2和nam安装和配置过程中的主要问题集中在安装nam处。下面我将对这四个部分分别展开介绍。
环境: VMware Ubuntu 20.04
1. 安装与配置
主要是安装ns2和nam需要的环境。
输入以下命令:
sudo apt-get install ns2
sudo apt-get install tcl
sudo apt-get install nam
sudo apt-get install original-awk
sudo apt-get install gnuplot-qt
2. 安装nam
步骤1:在网上下载ns-allinonep2.35.tar安装包
因为我在官网上下载时的下载速度过慢,所以在这里将下载的文件保存在百度网盘中,需要的自取。
链接:https://pan.baidu.com/s/18lx0Lo_hXPQOd4Ds3xGViA
提取码:1234
步骤2:解压
将下载的tar文件复制到安装目录,再解压。输入命令:
tar xvf ns-allinone-2.35.tar.gz
(注意是xvf 而不是xvfz)
步骤3:修改ls.h文件
解压后修改ns-2.35/linkstate/目录下的ls.h文件的第137行为:
void eraseAll() {this->erase(baseMap::begin(), baseMap::end()); }
步骤4:安装
在ns-allinone-2.35目录下执行下述语句:
sudo ./install
-
问题1:hash歧义问题
在出现问题的hash代码前加上两个冒号::,这样就可以显示没有在命名空间声明的hash函数。
文件下面还有一个相同的错误,按照这个方法修改就好了。 -
问题2:int char转换问题
解决方法:将char中十六进制数据强制转成char
就这样,再次执行sudo ./install就会出现一堆Must语句,如下图所示,这样就代表你安装完成了。
3. 配置环境变量
sudo gedit /home/(用户名)/.bashrc
在最后一行回车,加上:
export PATH="$PATH:/home/ns-allinone-2.35/bin:/home/ns-allinone-2.35/tcl8.5.10/unix:/home/ns-allinone-2.35/tk8.5.10/unix"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/ns-allinone-2.35/otcl-1.14:/home/ns-allinone-2.35/lib"
export TCL_LIBRARY="$TCL_LIBRARY:/home/ns-allinone-2.35/tcl8.5.10/library"
这一步很简单,就只需要粘贴保存就好了。
4. 检查是否能够成功运行
(1)终端输入ns,如果能够出现%则继续检验,否则安装失败。
(2)终端输入nam,如果能够出现nam的窗口则nam可以正常使用,
现在用tcl文件检验,先cd /ns2/ns-allinone-2.35/ns2.35/tcl/ex(注意按照你自己的安装路径进入),再ns simple.tcl。
如果出现下面结果:
210
0.0037499999999999999
running nam…
则表示ns2可以正常运行。
就是这样,我们安装好了ns2和nam。
参考资料
[1] ns2(含nam)和问题解决
[2] hash歧义问题的解决方法
[3] int to char的问题解决方法