您的位置:首页 > 运维架构 > Linux

Ubuntu16.04下安装ns2.35

2016-12-15 18:00 302 查看

步骤一:更新一下系统的安装包

        这个有的时候很有必要,Ubuntu的源有时会莫名其妙的不能用了

        sudo apt-get update #更新源列表

        sudo apt-get upgrade #更新已经安装的包

        sudo apt-get dist-upgrade #更新软件,升级系统

步骤二:安装ns2运行时需要的三个依赖包

        sudo apt-get install build-essential

        sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk

        说明一下:安装这个依赖包后,在以后调试涉及./configure时会提示找不到tcl的路径,解决方法是./configure –with-tcl-ver=8.5

        sudo apt-get install libxmu-dev libxmu-headers # for nam

步骤三:下载安装包并编译安装

        建议下载后直接放在目录/home/用户名/,若是放在其他比如usr/等下面,必须切换root账号才能进行操作,编辑时会出现各种头疼的操作

        tarxvfz ns-allinone-2.35.tar.gz # 这个可以图形化操作

        cd ns-allinone-2.35 #这个可以图形化操作

        ./install # 进行安装

        第一次安装报错:

        linkstate/ls.h:137:20: note: use ‘this->erase’ instead

        make: * [linkstate/ls.o] Error 1

        Ns make failed!

        修改ls文件,位置是:ns-2.35/linkstate/ls.h,第137行

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

        改为:void eraseAll() {this->erase(baseMap::begin(), baseMap::end()); }保存后,重新然后执行 ./install #重新安装顺利完成。

        这是因为ubuntu16.04的gcc编译版本太高,而ns2.35是2011年发布的,当时ubuntu的gcc版本比较低的,需要注意的是gcc4.4版本后,有些格式不能向下兼容,好吧,这个问题很是头疼,最笨也是最直接的方法就是直接改动源码,把出现问题的代码部分改成能被高版本gcc编译的格式。

步骤四:配置环境变量

        修改当前用户环境变量(对应的文件为’/home/用户名’中的.bashrc,并非’/ns-allinone-2.35’底下的空白.bashrc),gedit  ~/.bashrc

        直接在文档的最后面加上以下环境变量(把用户名改成你的就行):

        export PATH=$PATH:/home/zxt/ns-2.35/bin:/home/zxt/ns-2.35/tcl8.5.10/unix:/home/zxt/ns-2.35/tk8.5.10/unix

        export LD_LIBRARY_PATH=/home/zxt/ns-2.35/otcl-1.14:/home/zxt/ns-2.35/lib

        export TCL_LIBRARY=/home/zxt/ns-2.35/tcl8.5.10/library

步骤五:验证ns是否安装成功

        关闭终端,重启终端,输入ns,出现%,说明ns2安装成功

        注意:环境变量配错的话,会提示“程序“ns”尚未安装。此时请勿使用以下命令安装:
sudo apt-get install ns2

        应该继续在步骤4中修改环境变量!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux ns2.35安装