当前位置:文档之家› ubuntu11.04下成功安装ns2-2.34

ubuntu11.04下成功安装ns2-2.34

Ubuntu 11.04 安装 ns2-allinone-2.34【完整版】(附各种问题解决方案)这真是一个痛苦并快乐到过程,尝试多次安装,最终迎来来伟大的复兴!终于安装成功了!!!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 经验:先将本文提到的错误在./INSTALL之前全部改正后可减少出错机会1.首先,修改更新源,原有的更新源无法完成更新。

以下是ubuntu 11.04 教育网的源:sudo gedit /etc/apt/sources.list#网易资源deb /ubuntu/ natty main restricted universe multiversedeb /ubuntu/ natty-security main restricted universe multiversedeb /ubuntu/ natty-updates main restricted universe multiversedeb /ubuntu/ natty-proposed main restricted universe multiversedeb /ubuntu/ natty-backports main restricted universe multiversedeb-src /ubuntu/ natty main restricted universe multiverse deb-src /ubuntu/ natty-security main restricted universe multiversedeb-src /ubuntu/ natty-updates main restricted universe multiversedeb-src /ubuntu/ natty-proposed main restricted universe multiversedeb-src /ubuntu/ natty-backports main restricted universe multiverse2、更新Ubuntu系统文件,虽然系统是最新版本的,但是不代表里面的文件都是最新的,需要更新。

使用快捷键Alt + F2,得到程序查找窗口,输入gnome termina,打开Ubuntu的终端,里面依次输入命令sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgrade即可。

这里首次采用sudo时,需要用户密码,也就是安装ubuntu时设置的。

3、为了更好的安装ns2,还需要进行一些package的安装,打开终端,输入sudo apt-get install build-essentialsudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-devsudo apt-get install libxmu-dev libxmu-headers4、在/projects/nsnam/files/上可以下载到ns-allinone-2.34.tar.gz,(或者在国内CSDN下载:/detail/shihuixian/2161551),将其放在/home/yourfile/下,这里yourfile是用户自己定义的文件名,在终端中输入tar zxvf ns-allinone-2.34.tar.gz将ns2.34解压缩到指定的目录下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`Attention!如果gcc的版本大于4.0则在./install之前要做一些修改("gcc 4.0版本以前是用ld -share 来生成共享库的,但是到了4.0以上的版本(我的为gcc version 4.4.1),这个命令改为了gcc -share即可")补充:怎样查看gcc版本?终端执行ls /usr/bin/gcc –l或者gcc –version或者gcc -v查看过gcc版本之后,如果确实是4.0以上的版本,需要做以下修改:cd ns-allinone-2.34/otcl-1.13sudo gedit configure.in把77行处的SHLIB_LD="ld -shared"改为SHLIB_LD="gcc -shared"保存退出,然后sudo gedit configure把6304行(Ctrl+F)的SHLIB_LD="ld -shared"改为SHLIB_LD="gcc -shared"保存退出,然后cd ns-allinone-2.34 #到安装目录sudo ./install #开始安装~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +下面高潮就来啦!所有问题尼玛就全来啦!下面来的是各种各样的错误!1.错误一:安装NS2.34过程中出现如下的错误:tools/: In member function ‘virtual double GammaRandomVariable::value()’:tools/:219:70: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directlytools/:219:70: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’make: *** [tools/ranvar.o]错误1Ns make failed!See /nsnam/ns/ns-problems.html for problems这是由于gcc版本提高后对类内部函数调用的简化造成的不兼容,解决方法如下:在ns-allinone-2.34/ ns-2.34/tools文件夹下,找到报错提示中的文件,打开找到对应的219行删除::GaammaRandomVariable,保存,即:将219行的return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);改为:return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_); 然后保存退出,重新安装ns2.-----------------------------------------------------------------------------------------------------------------------------------------------2.错误二:重新在ns目录下键入$ ./install安装,再次出现同类问题时,如:mobile/: In member function ‘virtual double Naka gami::Pr(PacketStamp*, PacketStamp*, WirelessPhy*)’:mobile/:183:73: error: cannot call constructor ‘ErlangRandomVariable::ErlangRandomVariable’ directlymobile/:183:73: error: for a function-style cast, remove the redundant ‘::ErlangRandomVariable’mobile/:185:67: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directlymobile/:185:67: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’make: *** [mobile/nakagami.o]错误1Ns make failed!See /nsnam/ns/ns-problems.html for problems解决方法:在ns-allinone-2.34/ ns-2.34/ mobile文件夹下,找到报错提示中的文件,打开找到对应的183行删除::ErlangRandomVariable,保存,即:将183行的resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value(); 改为:resultPower = ErlangRandomVariable(Pr/m, int_m).value();在ns-allinone-2.34/ ns-2.34/ mobile文件夹下,找到报错提示中的文件,打开找到对应的185行删除::GammaRandomVariable,保存,即:将185行的resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();改为:resultPower = GammaRandomVariable(m, Pr/m).value();重新在ns目录下键入$ ./install安装,再次出现同类问题时,仿照此次解决方法,找到对应的文件和行数,修改即可。

直到安装成功。

----------------------------------------------------------------------------------------------------------------------------------------------3.错误三:安装成功之后,输入命令ns之后出现如下错误:*** buffer overflow detected ***: ns terminated======= Backtrace: =========/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x50)[0x451df0]/lib/i386-linux-gnu/libc.so.6(+0xe4cca)[0x450cca]/lib/i386-linux-gnu/libc.so.6(__strcpy_chk+0x3f)[0x45005f]ns(TclTraceVariableObjCmd+0x420)[0x83adb00]ns(Tcl_TraceObjCmd+0x469)[0x83b2989]ns(TclEvalObjvInternal+0x37b)[0x839f2bb]ns(Tcl_EvalEx+0x419)[0x83a11a9]ns(Tcl_Eval+0x3c)[0x83a14cc]ns(Tcl_GlobalEval+0x36)[0x83a2086]ns(_ZN3Tcl4evalEPc+0x1b)[0x839438b]ns(_ZN3Tcl5evalcEPKc+0xb3)[0x839435d]ns(_ZN11EmbeddedTcl4loadEv+0x1d)[0x83952cf]ns(Tcl_AppInit+0xb5)[0x83940ab]ns(Tcl_Main+0x285)[0x83eb0c5]ns(nslibmain+0x20)[0x8393fd4]ns(main+0x1b)[0x8394147]/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x382e37]ns[0x81a8481]======= Memory map: ========00c38000-00c54000 r-xp 00000000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so 00c54000-00c55000 r--p 0001b000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so 00c55000-00c56000 rw-p 0001c000 08:01 19439 /lib/i386-linux-gnu/ld-2.13.so 00c5a000-00c5c000 r-xp 00000000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.000c5c000-00c5d000 r--p 00001000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.000c5d000-00c5e000 rw-p 00002000 08:01 261673 /usr/lib/i386-linux-gnu/libXau.so.6.0.000cc0000-00ccd000 r-xp 00000000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.000ccd000-00cce000 r--p 0000c000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.000cce000-00ccf000 rw-p 0000d000 08:01 268150 /usr/lib/i386-linux-gnu/libXext.so.6.4.000ef9000-00f0c000 r-xp 00000000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so 00f0c000-00f0d000 r--p 00012000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so00f0d000-00f0e000 rw-p 00013000 08:01 19425 /lib/i386-linux-gnu/libnsl-2.13.so .......(注:这里省略了部分错误提示语句)bfbbb000-bfbdc000 rw-p 00000000 00:00 0 [stack]已放弃这是gcc的版本问题,解决方法如下:1.安装gcc-4.4输入:sudo apt-get intall gcc-4.42.安装g++-4.4输入:sudo apt-get intall g++-4.43.修改tcl8.4.18/unix文件夹下的文件Makefile.in将Makefile.in的270行:CC = @CC@(注意此处,在Makefile.in中CC后面有很长到空格,所以用ctrl+f 搜CC,找到)修改为:CC = @CC@ -V 4.4注意是大写的‘V’,这样gcc使用的参数版本为4.4。

相关主题