Ubuntu16.04下NS2.30安装AquaSim失败及脚本运行报错求助
问题解决步骤:AquaSim在NS2.30 + Ubuntu16.04下的安装与脚本运行问题
一、解决安装时「无法找到'ns'文件」的问题
- 先确认NS2.30基础环境是否正常
- 执行命令
which ns,若无输出,说明NS2未正确安装,需重新编译安装:- 解压NS2.30源码包,进入主目录执行
./configure - 安装依赖:
sudo apt-get install build-essential libx11-dev xorg-dev libxt-dev libxmu-dev - 执行
make,完成后再执行make install - 验证:
ns -v能正常输出版本信息即为安装成功
- 解压NS2.30源码包,进入主目录执行
- 执行命令
- 修正AquaSim的路径配置
- 解压AquaSim源码,打开根目录下的
Makefile,找到NS_DIR变量,将其设置为你的NS2.30实际安装目录(例如NS_DIR = /home/xxx/ns-allinone-2.30/ns-2.30) - 打开
configure文件,确认其中的NS路径与上述一致 - 重新执行
./configure→make→make install(无需sudo,避免权限冲突)
- 解压AquaSim源码,打开根目录下的
二、解决脚本运行时的「invalid command name」错误
这类错误是因为AquaSim的扩展模块未被NS2正确识别,按以下步骤处理:
- 手动集成AquaSim源码到NS2
- 将AquaSim中的
mac/underwatermac.h、mac/underwatermac.cc复制到NS2目录的mac/下 - 将AquaSim中的
agent/vectorbasedforward.h、agent/vectorbasedforward.cc复制到NS2目录的agent/下 - 进入NS2主目录,执行
make clean && make && make install重新编译
- 将AquaSim中的
- 确保脚本加载AquaSim库
- 在你的
.tcl脚本开头添加:source /path/to/aquasim/aquasim.tcl - 或者设置环境变量:
export NS_LIBRARY=/path/to/aquasim(替换为你的AquaSim实际路径)
- 在你的
- 注册模块到NS2的TCL库
- 打开NS2目录下的
tcl/lib/ns-mac.tcl,添加一行:Mac/UnderwaterMac set macType_ UnderwaterMac - 打开
tcl/lib/ns-agent.tcl,添加一行:Agent/Vectorbasedforward set agentType_ Vectorbasedforward - 再次重新编译NS2:
make clean && make && make install
- 打开NS2目录下的
内容的提问来源于stack exchange,提问作者khoa ho
相关产品推荐
相关产品推荐

