您的位置:首页 > 理论基础 > 计算机网络

网络仿真NS2之——环境配置

2016-05-14 10:10 736 查看
摘要

NS2的安装过程可能涉及到修改源文件代码,因此在本文中说说NS2安装的注意事项。

1. 下载安装包

下载NS2安装包,建议下载allinone版本,安装过程可能不会太费事,下载链接是http://ftp.isi.edu/nsnam/dist/。这里我的OS是ubuntu16.04,NS2安装包是ns-2.35-allinone.tar.gz

2. 解压

解压到相应的目录。这里我解压到/opt/ns2

3. 安装

进入解压后的目录,输入命令sudo ./install安装。

4. 终端显示如下错误,错误码可能不一样,但是问题基本上linkstate/ls.h文件编译错误的问题。

In file included from linkstate/ls.cc:64:0:
linkstate/ls.h: In instantiation of ‘void LsMap::eraseAll() [with Key = int; T = LsIdSeq]’:
linkstate/ls.cc:392:24: required from here
linkstate/ls.h:136:18: error: ‘erase’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
linkstate/ls.h:136:18: note: declarations in dependent base ‘std::map, std::allocator > >’ are not found by unqualified lookup
linkstate/ls.h:136:18: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!


5. 解决方法

a) 进入目录

进入linkstate目录。这里我的目录是/opt/ns2/ns-allinone-2.35/ns-2.35.linkstate

b) 修改文件

修改文件ls.h中的第136行18列的eraseAll()函数。没修改前,源代码如下所示,

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


在erase前面增加this->,修改之后,修改后的代码如下图所示,

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

再一次输入命令 sudo ./install,进行安装。

6. 安装之后出现下面提示的问题



7. 解决方法

a) 进入目录

~$ cd ~


~$ sudo vim .bashrc


b) 修改文件

在文件后面添加lib和library的路径,这里,我的路径如下,


c) 验证

~$ cd ns-2.35
~$ ./validate


8. 安装成功之后,在终端输入命令ns,但是存在NS2无法启动的问题

9. 解决方法

a) 进入目录

~$ cd ~

~$ sudo vim .bashrc


b) 修改文件

在文件后面添加bin,tcl,tk的路径,这里,我的路径如下,



10. 成功安装

新建一个终端,输入ns,出现%,成功安装NS2。

~$ ns



11. 辅助插件安装

NS2使用过程中,可能需要一些作图工具,这里推荐安装一些辅助的插件

~$ sudo apt-get install gawk
~$ sudo apt-get install gnuplot
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: