VMware虚拟机ubuntu20.04安装配置NS2.35环境(报错问题解决和踩过的坑)

提示

NS2只支持C+±4.8到5.4版本,关于如何安装低版本C++看上一篇

第一步:安装VMware,在VMware上安装Ubuntu20.04

第二步:下载NS2依赖的软件包

sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev  #用来做图形用户界面(GUI)的工具,与tcl命令结合可以创建和操作GUI的窗口组件
sudo apt-get install libxmu-dev libxmu-headers  #nam的依赖

第三步:下载NS2.35压缩包

官网链接:ns-2.35下载

在这里插入图片描述

第四步:将压缩包拉到虚拟机中/解压

在这里插入图片描述

分别执行下面命令:

sudo tar -zxvf ~/ns2/ns-allinone-2.35.tar.gz(目标解压文件) -C (指定解压目录)/usr/local/

sudo chown -R lurker:lurker ~/ns2

chown:这个命令用来更改文件或目录的用户所有者和/或组。其名称来源于“change owner”。
-R:这个选项表示递归执行,即不仅更改指定目录本身的所有者,也更改目录内所有文件和子目录的所有者。
lurker:lurker:这里,lurker:lurker表示将用户所有者和组所有者都更改为“lurker”。冒号前的“lurker”是新的用户所有者,冒号后的“lurker”是新的组所有者。
~/ns2:这指定了要更改所有权的目标目录。这里的 ./ns2 表示当前目录中名为“ns2”的目录,~/ns为根目标下ns2目录

第五步:修改三处地方,否则安装时会报错

第一处:修改ns2解压目录下的/ns-2.35/linkstate/ls.h头文件,找到137行的代码:
在这里插入图片描述

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

修改成:

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

第二处:修改NS2解压目录下/ns-2.35/mdart文件夹中的两个文件三处地方:

sudo nano ns-2.35/mdart/mdart_function.h
230行:hash -> hash_o
sudo vim ns-2.35/mdart/mdart_adp.cc
108行:hash -> hash_o
396行:hash -> hash_o

第三处:修改解压目录下/ns-2.35/bitmap/play.xbm文件

sudo nano ns-2.35/bitmap/play.xbm

在数组所有十六进制元素前加上(char),这里不能直接给数组类型加上unsigned,这样后面安装时会报参数类型错误。
在这里插入图片描述

第六步:安装

进入NS2解压目录,执行:

sudo ./install

第七步:配置环境变量:

sudo nano ~/.bashrc

在文件末尾加上(记得修改成自己的解压路径):

export NS_HOME=/home/lurker/ns2/ns-allinone-2.35
export TK_HOME=$NS_HOME/tk8.5.10
export TCl_HOME=$NS_HOME/tcl8.5.10

export PATH=$PATH:$NS_HOME/bin:$TK_HOME/unix:$TCL_HOME/unix
export LD_LIBRARY_PATH=$NS_HOME/otcl-1.14:$NS_HOME/lib
export TCL_LIBRARY=$TCL_HOME/library

重新加载资源,使新配置环境变量生效:

source ~/.bashrc

第八步:验证NS2安装

配置好环境变量后,任意找个位置,执行:

ns

若出现%说明ns安装成功在这里插入图片描述
这里可以输入调用ns2的tcl代码,若想退出按CTRL + Z

第九步:安装ns2的可视化工具nam

nam提供可视化界面可动态展示网络的仿真过程。
ns2目录中就已经自带了nam跟其依赖的tk和tcl包,也不会有版本不兼容问题,直接用就行:
1.进入nam目录:

cd /home/lurker/ns2/ns-allinone-2.35/nam-1.15

2.直接安装会报错,也是.xbm文件数据类型的问题,只需把所有报错的.xbm文件里数组中所有十六进制值前加上(char)即可(不能直接加unsigned,我试过会报参数类型错误),由于要修改的地方有点多,我打包了一份放在网盘,覆盖nam-1.15下的bitmap目录即可,自取:百度网盘链接

3.最后执行命令(要指tk和tcl的版本号,ns2目录中已经打包好了)

sudo ./configure --with-tcl-ver=8.5.10 --with-tk-ver=8.5.10

4.更新nam

sudo make
sudo make install

若出现:

/usr/bin/install -c -m 755 nam /usr/local/bin

说明安装成功,直接运行即可:

sudo /usr/bin/install -c -m 755 nam /usr/local/bin

因为配置了环境变量,也可以直接输入:

nam

在这里插入图片描述
弹出该界面说明nam安装成功,之后编写tcl脚本时可以调用nam可视化界面来帮助理解网络仿真过程。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值