目录
一.安装ns2
1.更新系统源
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已经安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
若觉得速度太慢,可以更换国内源
sudo vim /etc/apt/sources.list
编辑/etc/apt/sources.list文件,将下列代码其中一个添加至文件末尾即可
清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
重新加载下资源
source /etc/apt/sources.list
2.下载需要的软件包
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk(toolkit)是用来做图形用户界面(GUI)的工具,与tcl命令结合可以创建和操作GUI的窗口组件
sudo apt-get install libxmu-dev libxmu-headers #for nam
sudo apt-get install perl xgraph libxt-dev libx11-dev
3.下载安装包
官网下载地址:The Network Simulator - ns-2
建立共享文件夹,用共享文件夹将windows下的ns-allinone-2.35.tar.gz解压到虚拟机中
windows所建立的共享文件夹如下

有关共享文件夹挂载问题可参考此文章:http://t.csdn.cn/JMeij
4.安装ns2
因为共享文件夹挂载在/mnt/hgfs/ubuntu16共享文件夹,故执行下列命令,进入共享文件夹
cd /mnt/hgfs/ubuntu16共享文件夹
安装
sudo tar -zxvf ns-allinone-2.35.tar.gz -C /usr/local/
cd /usr/local
sudo mv ./ns-allinone-2.35 ./ns2
sudo chown -R root:root ./ns2
cd ns2
sudo ./install
5.问题解决
问题1:
mdart/mdart_adp.cc:396:21: error: reference to 'hash' is ambigous

解决:
sudo vim 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
问题2:
linkstate/ls.h:137:20: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!

解决:
将ns-2.35/linkstate/ls.h
sudo vim ns-2.35/linkstate/ls.h
的137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
更改为
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
问题3:
In file included from common/tkAppInit.cc:57:0:
./bitmap/play.xbm:5:74: error: narrowing conversion of ‘252’ from ‘int’ to ‘char’ inside

解决:
sudo vim ns-2.35/bitmap/play.xbm
在char前加入unsigned即可

问题4:
common/tkAppInit.cc: 65:4: error: invalid conversion from 'unsigned char*' to 'const char*' [-fpermissive]
65| play_bits,play_width,play_height);

解决:
方法1:将play_bits改为reinterpret_cast<const char*>(play_bits)即可
方法2:在play_bits前加(const char*)即可
安装成功:

6.配置环境变量
gedit ~/.bashrc
在文件末尾加上如下配置(注意修改路径):
export NS_HOME=/usr/local/ns2
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
7.验证安装成功
cd /usr/local/ns2/ns-2.35
sudo./validate
输入ns,出现%,说明ns2安装成功

二.nam安装
1.进入nam目录:
cd /usr/local/ns2/nam-1.15
2.运行配置:
sudo ./configure
问题:
configure: error: Installation of tcl seems incomplete or can't be found automatically.
Please correct the problem by telling configure where tcl is
using the argument --with-tcl=/path/to/package
(perhaps after installing it),
or the package is not required, disable it with --with-tcl=no.
解决:指定版本号
sudo ./configure --with-tcl-ver=8.5
3.更新nam
sudo make
问题1:
文件名:行号:error: narrowing conversion of '249' from 'int' to 'char' [-Wnarrowing]

解决:
sudo vim 报错的相应文件名
打开文件后,在char前加上unsigned即可

问题2:
main.cc:行号:4: error: invalid conversion from 'unsigned char*' to 'const char*'[-fpermissive]

解决:
sudo vim main.cc
按:行号,跳转至相应行,在报错标识符前加(const char*),进行强制类型转换即可
然后
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 console说明nam安装成功

三.运行实例
cd /usr/local/ns2/ns-2.35/tcl/ex/
ns simple.tcl
问题1:

解决一:授予权限
sudo vim out.tr
sudo chmod 777 out.tr
问题2:

解决一:同上
sudo vim out.nam
sudo chmod 777 out.nam
解决上述问题还有一个方法,此方法更为普遍,上述方法对一些.tcl程序的运行可能会报错,产生段错误,如下:

解决二:
产生该问题的原因是所在文件夹权限不够,无法生成我们所需要的对应文件
cd ..
ll
cd ..到上级目录,ll发现ex文件夹的权限为:
![]()
故更改权限:
sudo chmod 777 ex
更改后再次进入ex文件夹:
cd ex
ns simple.tcl
运行结果:




6461

被折叠的 条评论
为什么被折叠?



