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._ZN11taskPending10taskStatusEh' 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。