安装 ns 2.27后 开始打补丁输入patch p0-p0 < ns22...

&&& 总的来说还比较顺利,因为网上已经有很多教程。呼呼~记一下自己遇到的问题和解决方法(多谢前辈们的帖和文啦)。
转自/blogger/post_read.asp?BlogID=2888395&PostID=  
&&& 1、首先下载ns-allinone-2.34.tar.gz。地址 
&&& 2、按照[1]的步骤,先更新了一下系统。在终端输入:
&&& sudo apt-get update&& #更新源列表&&& sudo apt-get upgrade&& #更新已***的包&&& sudo apt-get dist-upgrade&& #更新软件,升级系统
&&& 不过我在执行第一条的时候,命令行总是到
&&& 94% [正在连接
(91.189.88.40)]
&&& 就卡住了。最后只能强行关闭终端。不知道是什么原因哈~网路连接问题么。但这个并没有影响后续的***。
&&& 3、装几个需要使用的软件包
&&& sudo apt-get remove gcc&& #移除gcc&&& sudo apt-get install build-essential & #for gcc and some essential&&& sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev&& #for tcl and tk&&& sudo apt-get install libxmu-dev libxmu-headers&& #for nam 
&&& 4、***NS2
&&& 把ns-allinone-2.34.tar.gz压缩包放到想要***的目录下。我的是扔到了/usr下面。因为是写保护的文件夹,不能在窗口复制粘贴,所以在终端输入:
&&& sudo cp /media/01CA4E644AAC9180/我的文档/程序/Linux/ns-allinone-2.34.tar.gz /usr
&&& 前面那一串路径比较麻烦- - 因为是挂载的Windows下的分区。好在用Tab键输入很方便。
&&& 然后继续&&
&&& cd /usr&& #到***目录&&& ls&& #可以查看该目录下的文件&&& sudo tar -xzf ns-allinone-2.34.tar.gz&& #解压到当前目录&&& cd ns-allinone-2.34&& #进入目录&&& sudo ./install&& #开始***
&&& 然后命令行快速刷新,确实很养眼。但不一会突然报错:
&&& &&(以上省略)&&& make: *** [libotcl.so] 错误 1&&& otcl-1.13 make failed! Exiting ...&&& See
for problems
&&& 卡住了,很郁闷,于是上网找解决方法。在[2]上得到结果如下:
&&& gcc 4.0版本以前是用ld -share来生成共享库的,但是到了4.0以上的版本,这个命令改为了gcc -share。在终端里输入gcc -v查看,我的版本是gcc version 4.4.1。
&&& 开始修改。
&&& cd /usr/ns-allinone-2.34/otcl-1.13&&& sudo gedit configure.in
&&& 把77行的SHLIB_LD="ld -shared",改为SHLIB_LD="gcc -shared",保存退出。然后
&&& sudo gedit configure
&&& 按照[2]中的说法,在5518行找,木有。于是Ctrl+F了一下,在6000+行找到了。把SHLIB_LD="ld -shared"改为SHLIB_LD="gcc -shared",保存退出。
&&& cd回到目录ns-allinone-2.34下,重新运行
&&& sudo ./install
&&& 顺利完成***。最后出来提示:
&&& Please put /usr/ns-allinone-2.34/bin:/usr/ns-allinone-2.34/tcl8.4.18/unix:/usr/ns-allinone-2.34/tk8.4.18/unix
&&& into your PATH so that you'll be able to run itm/tclsh/wish/xgraph.
&&& IMPORTANT NOTICES:
&&& (1) You MUST put /usr/ns-allinone-2.34/otcl-1.13, /usr/ns-allinone-2.34/lib, &&& into your LD_LIBRARY_PATH environment variable.&&& If it complains about X libraries, add path to your X libraries &&& into LD_LIBRARY_PATH.&&& If you are using csh, you can set it like:&&& &&& setenv LD_LIBRARY_PATH &&& If you are using sh, you can set it like:&&& &&& export LD_LIBRARY_PATH=
&&& (2) You MUST put /usr/ns-allinone-2.34/tcl8.4.18/library into your TCL_LIBRARY environmental&&& variable. Otherwise ns/nam will complain during startup.
&&& After these steps, you can now run the ns validation suite with&&& cd ns-2.34; ./validate
&&& For trouble shooting, please first read ns problems page &&&
Also search the ns mailing list archive&&& for related posts.
&&& 5、配置环境变量
&&& 用cd进入目录/home/hm(hm是我的用户名),然后
&&& sudo gedit .bashrc 
&&& 在文件末尾加入:
&&& PATH="$PATH:/usr/ns-allinone-2.34/bin:/usr/ns-allinone-2.34/tcl8.4.18/unix:/usr/ns-allinone-2.34/tk8.4.18/unix"
&&& LD_LIBRARY_PATH="/usr/ns-allinone-2.34/otcl-1.13:/usr/ns-allinone-2.34/lib"
&&& TCL_LIBRARY="$TCL_LIBRARY:/usr/ns-allinone-2.34/tcl8.4.18/library"
&&& 保存退出(上述内容在***结束后的提示中有,见粗体部分)。  
&&& 6、验证
&&& 打开一个新终端,输入ns,如果出现%,则说明***成功。
&&& 也可以进入/usr/ns-allinone-2.34/ns-2.34/,输入./validate验证。
&&& 到此。上面红色标注的部分记得都要用自己的***路径替换。
阅读(...) 评论()ns2问题解决经验-争取经常更新
1) ns2的***
&i: 一般***,进入 ns-allinone-2.xx目录后,执行: ./install
&ii: ***完毕后,要设置环境变量,在.bashrc的文件末尾(ubuntu
版本中在用户目录下,如/home/weizai)增加以下语句(假设在/home/weizai/ns2work
下***了ns-allinone-2.30):
NS_HOME=/home/weizai/ns2work/ns-allinone-2.30
PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/bin:$PATH
LD_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
TCL_LIBRARY=$NS_HOME/tcl8.4.13/library
&&保存文件退出,重新打开终端,这时在终端键入
ns,应该出现%,可用./validate检查***是否成功。
iii: 要记得***tk和tcl, ns-allinone-2.26(含2.26)以前对应的版本是8.3,以后是8.4
&&以ubuntu为例,在新立德软件包管理器中就可以选择,强烈建议上网不方便或网速不快的用户使用ubuntu
DVD进行***,不少基本软件在DVD中都有,***方便快捷。
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: 尝试用低版本的ubuntu
DVD,比如用ubuntu7.0,在新立得中添加此光盘源,而后在终端用sudo apt-get install
libxmu-dev***
&v: 解决因为reldi'`,***ns2,提示Syntax error: Unterminated
quoted 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&
&&&&&&&&&&&&&
更直接的该发,例如***中提示如下错误
&&&checking
system version (for dynamic loading)... ./configure: 1: Syntax
error: Unterminated quoted string
&&tcl8.3.2 configuration failed!
&&&&&&&&&&&
这时,进入 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等,进入相应目录后***命令如下:
&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所在的路径:% which
&&cd /usr/bin
&&/usr/bin sudo rm gcc
(这只是删除快捷方式)
&&第二,建立新的gcc连接&
(建立新的快捷方式)
&&/usr/bin sudo ln -s gcc-3.4 gcc
(ln -s 表示建立符号链接)
&&(注:分别使用gcc34、g++34、gcj34来调用GCC
3.4.0的gcc、g++、gcj完成对C、C++、J***A程序的编译了)
&&相当于建立到各种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/bin
即在/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模块时出错
4.3,g++-4.3可***,但***过程中显示若干警告条目,不知会有什么具体影响;
&6.5)ns-2.31***
4.1,g++-4.1可***,***过程中警告条目不如用gcc4.3装ns2.30时多
&6.6)ns-2.33***
4.3,g++-4.3可***,但***过程中显示若干警告条目,不知会有什么具体影响;
7)关于wpan(802.15.4模块)
ns2.30和ns2.31中均有此模块,用gcc3.3编译会出错,用gcc4则不会
出错提示如下
tag.o diffusion3/filters/rmst/rmst.o
diffusion3/filters/rmst/rmst_filter.o gen/version.o gen/ns_tcl.o
gen/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
`.gnu.linkonce.t._ZN11taskPending10taskStatusEh' referenced in
section `.rodata' of wpan/p802_15_4mac.o: defined in discarded
section `.gnu.linkonce.t._ZN11taskPending10taskStatusEh' of
wpan/p802_15_4mac.o
collect2: ld returned 1 exit status
make: *** [ns] 错误 1
8) 关于ubuntu 源
i:&& 源文件位置
/etc/apt/sources.list& ,在这个文件里可以手工添加各种源
如何选择源
一种方法是把网上别人提供的源,添加到sources.list 文件中
二(推荐),在“软件源”,选择 “下载自”- “其他...”,
点击“选择最佳服务器”,这时系统会帮你搜索最快的服务器(建议国家选择中国,如果你装的是英文界面,默认是美国)。
9)& 在ns2中修改或添加文件后
&i:修改.cc文件后
&&修改.cc文件后,重新make即可
&i::修改.***件后,或者默认的tcl文件(这里不是指自己写的仿真脚本)
&修改.***件后,整个ns-2.xx要重新编译,命令如下
&./configure
& &&sudo make
&&或者以下过程更妥当&&
&./configure
&./configure
& &&sudo make
111)& 其他问题描述
i:我新增完一?C++和OTCL的????後,跑模?都?出?warning: no class variable
xx:variable_。&&  
&解?方案:
在~ns2/tcl/lib中的ns-default.tcl加入??值後,重新??ns2。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。1771人阅读
NS2/NS3(12)
/***************************************************************************************************************/
一、NS2.27上***LEACH协议
leach协议在ns2.27上是很容易***的,比较难的是在高版本的linux上***ns2.27. 在前面的系列中,总结了一些常见的***错误。
LEACH协议***步骤:
1. 把协议的***包mit.tar.gz放到/opt/ns-ailinone-2.27/ns-2.27下;
2.解压这个压缩包,会直接覆盖掉相同的文件(注意,在其它的高版本上并不能这样直接覆盖,因为高版本的文件跟ns2.27的文件有所不同,如果直接覆盖,会导致一些文件不正确,而这个压缩包就是根据ns2.27来修改的,所以只会在ns2.27上增加需要的东西。命令为:、
gunzip mit.tar.gz
tar -xvf mit.tar3. 然后修改Makefile,可以下载一个修改好的文件,直接覆盖掉原来的,也可以在原来的基础上进行修改,如下:
添加-DMIT_uAMPS到DEFINE列表中(第60行);
添加-I./mit/rca -I./mit/uAMPS到INCLUDES列表中(第71行);
将以下内容添加到gaf/gaf.o \之前(第202行)。
mit/rca/energy.o mit/rca/rcagent.o \
mit/rca/rca-ll.o mit/rca/resource.o \
mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \
4. 清除以前的缓存:
make clean5. &重新编译NS2:
6. &修改leach-test文件。在ns tcl/ex/wireless.tcl &\ &前面添加:
RCA_LIBRARY=mit/rca
export RCA_LIBRARY
uAMPS_LIBRARY=mit/uAMPS
export uAMPS_LIBRARY
添加环境变量。同时在shell的配置文件中(.bashrc)添加:
export RCA_LIBRARY=/opt/ns-allinone-2.27/ns-2.27/mit/rca
export uAMPS_LIBRARY=/opt/ns-allinone-2.27/ns-2.27/mit/uAMPS
这些相当关键,否则会出现错误:
can't read &env(RCA_LIBRARY)&: no such variable
& & while executing &
很多这些错误都是环境变量没有设置正确造成的(要了解普通用户和root用户环境配置文件的区别)。
7. 运行测试文件(test 的第四行和第五行要互换位置,否则会报错,找不到文件的):
会调用leach-test,终端上会显示DONE!表示已经成功***了LEACH协议,在leach_sims下的leach.err会记录相关信息。
运行中可能还会报各种错误,这个帖子的解决方案比较好:
在修改了一些脚本之后,要使用make clean命令清空,之后重新make。
/***************************************************************************************************************/
二、LEACH仿真数据的分析
1. 删除leach.out中的warnings:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:217946次
积分:2880
积分:2880
排名:第9040名
原创:110篇
评论:66条
(1)(1)(2)(5)(4)(1)(1)(5)(3)(3)(3)(4)(1)(2)(5)(1)(3)(4)(7)(5)(1)(3)(10)(3)(1)(1)(1)(1)(2)(1)(2)(6)(1)(9)(3)(1)(3)(2)ns2.26***方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ns2.26***方法
上传于||文档简介
&&c​y​g​w​i​n​下​安​装​n​s
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

参考资料

 

随机推荐