ns2问题解决经验

来源:互联网 发布:sai绘图软件官方下载 编辑:程序博客网 时间:2024/06/06 10:41

1) ns2的安装
 
    
 
   i: 一般安装,进入 ns-allinone-2.xx目录后,执行: ./install即可
 
     
 
    ii: 安装完毕后,要设置环境变量,在.bashrc的文件末尾(ubuntu版本中在用户目录下,如/home/weizai)增加以下语句(假设在/home/weizai/ns2work下安装了ns-allinone-2.30):
 
     exportNS_HOME=/home/weizai/ns2work/ns-allinone-2.30
 
 exportPATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/bin:$PATH
 
 exportLD_LIBRARY_PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/otcl-1.12:$NS_HOME/lib:$LD_LIBRARY_PATH
 
 exportTCL_LIBRARY=$NS_HOME/tcl8.4.13/library
 
       保存文件退出,重新打开终端,这时在终端键入ns,应该出现%,可用./validate检查安装是否成功。
 
    
 
    iii: 要记得安装tk和tcl, ns-allinone-2.26(含2.26)以前对应的版本是8.3,以后是8.4
 
     以ubuntu为例,在新立德软件包管理器中就可以选择,强烈建议上网不方便或网速不快的用户使用ubuntuDVD进行安装,不少基本软件在DVD中都有,安装方便快捷。


 
    iv:nam安装不上      
 
       *要安装libxmu-dev包,不然无法编译通过nam-1.11,会报“没有X11/Xmu/WinUtil.h”的错误。
 
    在ubuntu中选择安装libxmu-dev包时,libxt-dev包会关联安装。(libxt-dev这个包也是必须的。)
 
              * 在ubuntu8.x版本的dvd光盘中希望安装libxmu-dev,但会提示不能安装。
 
   解决方法1:到网上下载libxmu-dev包,按照一般软件包安装步骤-configure, make, sudo make install安装。
 
   解决方法2: 尝试用低版本的ubuntuDVD,比如用ubuntu7.0,在新立得中添加此光盘源,而后在终端用sudo apt-get installlibxmu-dev安装
 
 

    v: 解决因为reldi'`,安装ns2,提示Syntax error: Unterminatedquoted string,导致tcl,tk,otcl不能安装的问题(这个问题是因gcc对语法要求更加严格):
 
        分别进入以下3个文件夹:
 
     */ns-allinone-2.29/tcl8.4.11/unix/
 
     */ns-allinone-2.29/tcl8.4.11/tk8.4.11/unix/
 
     */ns-allinone-2.29/otcl-1.11/
 
        执行命令: cp configure{,.orig}&& sed "s/relid'/relid/"configure.orig > configure 
 
            更直接的该发,例如安装中提示如下错误
 
  checkingsystem version (for dynamic loading)... ./configure: 1: Syntaxerror: Unterminated quoted string
 
 tcl8.3.2 configuration failed!Exiting
 
          这时,进入 ns-allinone/tcl8.3/unix ,打开configure文件,查找relid字符,会找到如下语句:
 
 if test -r /etc/.relid -a"X`uname -n`" = "X`uname -s`" ; then
 
   system=MP-RAS-`awk'{print }' /etc/.relid'`

  .........................................................

  if test -r /etc/.relid -a"X`uname -n`" = "X`uname -s`" ; then
 
   system=MP-RAS-`awk'{print }' /etc/.relid'`
 
             把 relid'`中的'符号去掉即可,tk和otcl安装也会遇到类似问题,方法同上   
 
       补充说明:
 
              关于2.26和2.27版本中的configure文件中“relid”字符问题,
 
 只有tcl和tk文件夹下的unix文件夹里configure文件,以及otcl文件夹的configure有relid后面多一个单引号’的问题,去掉单引号即可
 
 即搜索到relid'`,而后改成relid`
 
             
 
        
2) ns-allinone有一些软件包可以单独安装,比如nam-1.x等,进入相应目录后安装命令如下:
 
./configure;
 
make
 
sudo make install

3)  关于gcc, g++版本修改(ubuntu)
 
gcc -v-显示现在实用gcc版本;
 
gcc 按tab键,显示现在系统中已有gcc;
 
* 可以改变现在系统使用gcc的版本(假设原来是 gcc-4.1);
 
 首先,先删除原有的gcc连接,假设原来是gcc-4.1,则进入安装gcc的目录后,假设安装在 /usr/bin下
 
 (查看原来的gcc所在的路径:% whichgcc)
 
 cd /usr/bin
 
 /usr/bin sudo rm gcc(这只是删除快捷方式)
 
 第二,建立新的gcc连接 (建立新的快捷方式)
 
 /usr/bin sudo ln -s gcc-3.4 gcc(ln -s 表示建立符号链接)
 
 (注:分别使用gcc34、g++34、gcj34来调用GCC3.4.0的gcc、g++、gcj完成对C、C++、JAVA程序的编译了)
 
 相当于建立到各种gcc版本的快捷方式
 
    g++版本修改同上

4) 关于gcc和g++安装
 
   如果用ubuntu live cd 安装,这两个东东实际上都没有装,需要上网装或者用live dvd通过dvd安装光盘安装

5) 如果nam不能直接启动(但是在ubuntu8.x下我没有遇到这个问题,这个问题不是必然出现的)
sudo ln -s /home/wei/nsallione-2.30/ns-2.30/nam-1.12 nam /usr/binnam
即在/usr/bin下建立一个名位nam的快捷方式指向可执行文件nam

6) 关于不同版本ns2的安装,特别是关于编译起gcc的选择
 
6.1)ns-2.26安装
 
用gcc 3.3,g++-3.3

 6.2)ns-2.27安装
 
用gcc-3.3 和g++-3.0,在ubuntu下安装ok

 6.3)ns-2.29 安装
 
用gcc-3.3和gcc-3.4编译不能通过,在遇到wpan模块时出错
 
-----------------------------
 
用gcc-3.4,gcc-4.1,编译不能通过,“./sctp/sctp.h:705:错误,有多余的限定'SctpAgent::'
 
在成员'DumpSendBuffer’'上make:***[trace/trace.o]错误1.
 
-----------------------------
 
用gcc-4.3编译不能通过,
 
“./sctp/sctp.h:705:错误,有多余的限定'SctpAgent::'
 
在成员'DumpSendBuffer’'上...
 
/trace/trace.cc:185警告:不建议使用从字符串常量到"char*"的转换make:***[trace/trace.o]错误1

 6.4)ns-2.30安装
 
用gcc-3.4编译不能通过,在遇到wpan模块时出错
 
用gcc4.3,g++-4.3可安装,但安装过程中显示若干警告条目,不知会有什么具体影响;

 6.5)ns-2.31安装
 
用gcc4.1,g++-4.1可安装,安装过程中警告条目不如用gcc4.3装ns2.30时多

 6.6)ns-2.33安装
 
用gcc4.3,g++-4.3可安装,但安装过程中显示若干警告条目,不知会有什么具体影响;


7)关于wpan(802.15.4模块)
ns2.30和ns2.31中均有此模块,用gcc3.3编译会出错,用gcc4则不会
出错提示如下
tag.o diffusion3/filters/rmst/rmst.odiffusion3/filters/rmst/rmst_filter.o gen/version.o gen/ns_tcl.ogen/ptypes.o 
common/win32.o-L/root/nsroot/ns-allinone-2.27/tclcl-1.15 -ltclcl-L/root/nsroot/ns-allinone-2.27/otcl-1.8 -lotcl-L/root/nsroot/ns-allinone-2.27/lib -ltk8.4-L/root/nsroot/ns-allinone-2.27/lib -ltcl8.4 -lXext -lX11 -lnsl-ldl -lm
`.gnu.linkonce.t._ZN11taskPending10taskSta
tusEh' referenced insection `.rodata' of wpan/p802_15_4mac.o: defined in discardedsection `.gnu.linkonce.t._ZN11taskPending10taskStatusEh' ofwpan/p802_15_4mac.o
collect2: ld returned 1 exit status
make: *** [ns] 错误 1

8) 关于ubuntu 源
 
 i:   源文件位置
 
     /etc/apt/sources.list  ,在这个文件里可以手工添加各种源
 
  ii: 如何选择源
 
     一种方法是把网上别人提供的源,添加到sources.list 文件中
 
     二(推荐),在“软件源”,选择 “下载自”- “其他...”,点击“选择最佳服务器”,这时系统会帮你搜索最快的服务器(建议国家选择中国,如果你装的是英文界面,默认是美国)。


9) 
在ns2中修改或添加文件后
 
i:修改.cc文件后
 
 修改.cc文件后,重新make即可
 
i::修改.h文件后,或者默认的tcl文件(这里不是指自己写的仿真脚本)
 
  修改.h文件后,整个ns-2.xx要重新编译,命令如下
 
   makeclean
 
  ./configure
 
  make
 
  sudo makeinstall
 
  或者以下过程更妥当  
 
  ./configure
 
   makeclean
 
  ./configure
 
  make
 
  sudo makeinstall

111) 

其他问题描述
 
 
 
  i:我新增完一個C++和OTCL的鏈結變數後,跑模擬都會出現warning: no class variablexx:variable_。    
 
解決方案:
 
   在~ns2/tcl/lib中的ns-default.tcl加入預設值後,重新編譯ns2。


原创粉丝点击