Ubuntu12.04中安装ns-allinone-2.34
1、首先安装ns2所需的组件、库之类:
$sudo apt-get update $sudo apt-get install build-essential $sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev $sudo apt-get install libxmu-dev libxmu-headers
2、查找包含x11-dev关键字的软件包,以防出现类似tk8.4.14,安装中断退出:
$sudo apt-cache search x11-dev
出现如下类似的命令:
ibx11-dev - X11 client-side library (development headers)
xlibs-dev - X Window System client library development files transitional package
libghc6-x11-dev - Haskell X11 binding for GHC
libooc-x11-dev - X11 specific modules for the oo2c compiler (devel)
libgl1-mesa-swx11-dev - A free implementation of the OpenGL API -- development support files
则分别安装上面的组件,命令如下:
$sudo apt-get install libx11-dev $sudo apt-get install xlibs-dev $sudo apt-get install libghc6-x11-dev $sudo apt-get install libooc-x11-dev
3、编译ns2之前先修改两个地方(针对ununtu9.04以后的版本):
输入cd otcl-1.13,进入otcl-1.13目录,找到configure.in.将77行,SHLIB_LD="ld -shared"改为 SHLIB_LD="gcc -shared"
同时修改configure 第6304行SHLIB_LD="ld -shared"改为SHLIB_LD="gcc -shared"
4、先在otcl-1.13和tclcl8.4.18目录分别./configure make 之后再在/ns-2.34目录下./configure make,make完了之后一定记得sudo make install:
$sudo make install
这样保证在ns-2.34目录下./configure生成的Makefile中LIB的路径都是/home/muye/ns-allinone-2.34/下的otcl、tclcl
5、增添环境变量:
$sudo gedit /etc/profile
追加如下:
# NS-2.34 export PATH=/home/muye/ns-allinone-2.34/bin:/home/muye/ns-allinone-2.34/tcl8.4.18/unix:/home/muye/ns-allinone-2.34/tk8.4.18/unix:$PATH export LD_LIBRARY_PATH=/home/muye/ns-allinone-2.34/otcl-1.13:/home/muye/ns-allinone-2.34/lib:$LD_LIBRARY_PATH export TCL_LIBRARY=/home/muye/ns-allinone-2.34/tcl8.4.18/library:$TCL_LIBRARY
6、在/ns-2.34目录下./configure make完了之后一定记得sudo make install:
$sudo make install
每次修改ns2之后重新make之后也要这样做,保证ns的最新。
7、安装nam,在nam-1.14目录下./configure make 之后,记得要修改main.cc文件,防止出现“nam: invalid command name "tcl_findLibrary"”:
#ifdef notdeffprintf(stderr, "Application name is %s\n", appname); #endif -#if 0 +//#if 0Tcl_Interp *interp = Tcl_CreateInterp();if (Tcl_Init(interp) == TCL_ERROR) {printf("%s\n", interp->result);abort();} -#endif +//#endif
即注释掉if 0和endif。之后sudo make install即可。
出现的问题解决:
错误一: tools/ranvar.cc: In member function ‘virtual double GammaRandomVariable::value()’: tools/ranvar.cc:219:70: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directly tools/ranvar.cc:219:70: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’ make: *** [tools/ranvar.o]错误1 Ns make failed! See http://www.isi.edu/nsnam/ns/ns-problems.html for problems
解决办法: 在ns-allinone-2.34/ ns-2.34/tools文件夹下,找到报错提示中的ranvar.cc文件,打开找到对应的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。
错误二: In file included from mac/mac-802_11Ext.cc:66:0: mac/mac-802_11Ext.h: 在成员函数‘u_int32_t PHY_MIBExt::getHdrLen11()’中: mac/mac-802_11Ext.h:175:19: 错误: expected primary-expression before ‘struct’ mac/mac-802_11Ext.h:175:41: 错误: ‘dh_body’在此作用域中尚未声明 mac/mac-802_11Ext.h:175:51: 错误: ‘offsetof’在此作用域中尚未声明 mac/mac-802_11Ext.h:177:3: 警告: 在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
解决办法: 在ns-allinone-2.34 s-2.34\mac\mac-802_11Ext.h 文件添加#include <cstddef>然后重新安装,就OK了。
错误三: mobile/nakagami.cc: 在成员函数‘virtual double Nakagami::Pr(PacketStamp*, PacketStamp*, WirelessPhy*)’中: mobile/nakagami.cc:185:67: 错误: 不能直接调用构造函数‘GammaRandomVariable::GammaRandomVariable’ [-fpermissive] mobile/nakagami.cc:185:67: 错误: 对于函数类型的类型转换,移除冗余的‘::GammaRandomVariable’ [-fpermissive]
解决办法: 在ns-allinone-2.34/ ns-2.34/ mobile文件夹下,找到报错提示中的nakagami.cc文件,打开找到对应的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文件夹下,找到报错提示中的nakagami.cc文件,打开找到对应的185行删除::GammaRandomVariable,保存, 即:将185行的 resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value(); 改为: resultPower = GammaRandomVariable(m, Pr/m).value(); 重新在ns目录下键入$ ./install安装,再次出现同类问题时,仿照此次解决方法,找到对应的文件和行数,修改即可。
(注意:往往在移植到别的平台时,尤其是x86到x86_64,在/ns-2.34目录下make clean有时候并不能够全部rm掉原来32位下生成的.o、.a文件,比如我在移植到64位安装时候出现:
/usr/bin/ld: i386 architecture of input file `common/main-monolithic.o' is incompatible with i386:x86-64 output
collect2: ld returned 1 exit status
就是因为common/main-monolithic.o没有clean干净。
直接执行find . -name ".o" | xargs rm -rf)
nam出现如下问题时:
nam_stream.o: In function `NamStreamCompressedFile::gets(char*, int)':
nam_stream.cc:(.text+0x1071): undefined reference to `gzgets'
nam_stream.o: In function `NamStreamCompressedFile::NamStreamCompressedFile(char const*)':
nam_stream.cc:(.text+0x10b4): undefined reference to `gzopen'
nam_stream.o: In function `NamStreamCompressedFile::NamStreamCompressedFile(char const*)':
nam_stream.cc:(.text+0x1136): undefined reference to `gzopen'
collect2: ld returned 1 exit status
make: *** [nam] Error 1
发现rm掉.o也没用,那么:
修改nam目录下的Makefile,添加-lz
LIB = \
-L/home/hct/ns-allinone-2.31/tclcl-1.19 -ltclcl -L/home/hct/ns-allinone-2.31/otcl -lotcl -L/home/hct/ns-allinone-2.31/lib -ltk8.4 -L/home/hct/ns-allinone-2.31/lib -ltcl8.4 -lz \
再make sudo make install
nam如果出现如下问题:
make 说找不到 X11/xmu/winutil.h,安装 libXmu-dev:
sudo apt-get install libXmu-dev
nam如果出现如下问题:
执行nam提示:nam:no display name and no $DISPLAY environment variable,那么这是因为远程ssh到别的机器上无法进行图形界面,只能在那台机器上执行就好。
编译的时候出现"/usr/bin/ld: cannot find -lz"错误,需要安装zlib-dev这个包,在线安装命令为:apt-get install zlib1g-dev。
转载于:https://www.cnblogs.com/buptmuye/p/3451753.html
Ubuntu12.04中安装ns-allinone-2.34相关推荐
- ubuntu12.04中安装SVN记录
首先:subversion(以下简称svn)是近年来崛起的版本管理工具 下载地址 http://subversion.apache.org/download/#recommended-release ...
- Ubuntu12.04中安装,卸载chrome谷歌浏览器,打开谷歌浏览器
有时候安装完了找不到:直接在Dash Home,也就是任务栏最上面那个图标,输入chrome就可以了. 在软件中心里面找不到chrome的卸载,想要卸载的话,按照下面的步骤来就行: 试试看这个.. 代 ...
- NS-2.35和Ubuntu12.04的安装32bit
安装过程受到挫折,最终还是成功了,主要参考以下两份材料,在这里记录下操作过程,希望对您有所帮助. 针对NS-2.35和Ubuntu12.04的安装32bit 网上ns2安装的教程有很多,很杂,有的有些 ...
- ubuntu12.04中shibboleth布署
ubuntu12.04中shibboleth布署 0. 环境 操作系统:ubuntu12.04 shibboleth版本:2.4.4 gitlab版本:8.6 1.shibboleth框架 三台虚拟机 ...
- 在 Kubuntu 21.04 中安装和升级 KDE Plasma 5.2
KDE 团队启用了向后移植 PPA,你可以使用它在 Kubuntu 21.04 Hirsute Hippo 中安装和升级到 KDE Plasma 5.22. KDE 团队最近发布了 KDE Plasm ...
- linux下安装虚拟天文馆,如何在Ubuntu 20.04、18.04中安装Stellarium 0.20.0虚拟天文馆
如何在Ubuntu 20.04.18.04中安装Stellarium 0.20.0虚拟天文馆 几天前发布了Stellarium 0.20.0,它时一个免费开源的桌面虚拟天文馆软件.以下是在Ubuntu ...
- ubuntu共享usb接口给虚拟机_如何在虚拟机的Ubuntu12.04中使用外部USB设备
2016-10-26 回答 让虚拟机可以使用host机上的外设,就必须在host中开启虚拟机的此项服务 本例为usb接口, 计算机右击选择管理,在弹出的计算机管理对话框中在左边一栏中选中"服 ...
- 在Ubuntu 18.04中安装JDK 8
在Ubuntu 18.04中安装JDK 8 安装 Oracle JDK Webupd8 Team维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 8安装程序脚本. ...
- linux mint 18.3浏览器,在Linux Mint 19/Ubuntu 18.04中安装Tor Browser浏览器的方法
本文介绍在Linux Mint 19/Ubuntu 18.04系统中安装Tor Browser浏览器的方法,本文不使用Tor的默认Ubuntu存储库,因为它们包含旧版本的Tor. 一.添加Tor存储库 ...
- 怎样在 Ubuntu 13.04 Raring Ringtail , 12.10, 12.04 中安装和设置 Samba 实现网上邻居共享...
Samba 是一款功能强大的共享工具,可以实现与windows的共享,就是我们经常在windows计算机之间使用的网上邻居功能,可以共享文件和打印机等.今天要介绍的是在 Ubuntu 13.04 Ra ...
最新文章
- JUnit基础及第一个单元测试实例
- 在linux中进程表示的是,Linux进程的表示
- 【Python-ML】非线性映射降维-KPCA方法
- 【arduino】继续蜂鸣器音乐播放,arduinoIDE里调用音乐播放库
- 蓝桥杯- 图形显示(java)
- 数据结构题:克鲁斯卡尔(Kruscal)算法求最小生成树
- [react] react中的key有什么作用?
- 服务器应用日志清理,Linux下Tomcat日志定期清理
- Servlet 2.4 规范之第四篇:Servlet上下文
- 商城后台管理系统Vue+Vue-Router+Element-UI+Axios+Echarts 黑马程序员视频笔记
- 如何关闭 Mac 版 QQ 上线离线提示音?
- hdu 5285 wyh2000 and pupil 二分图染色发判定,求最大匹配
- Flask 中 AssertionError: View function mapping is overwriting an existing endpoint function: decorate
- 九度OJ题目1035:找出直系亲属
- 分析了60款链游,发现40%的玩家都是机器人
- 仿朋友圈图片查看功能
- 统计学中sp_统计学假设检验中 p 值的含义具体是什么?
- 【JAVA 求差集】
- 蛮力法-分治法-处理最近对问题
- P2P平台方案——亿网软通“互联网+”金融解决方案
热门文章
- 【转】Golang 新手可能会踩的 50 个坑
- Python3 中使用sys.argv详解
- Http请求之基于HttpUrlConnection,支持Header,Body传值,支持Multipart上传文件:
- 【OOB】MSHTML!CPasteCommand::ConvertBitmaptoPng heap-based buffer overflow学习
- 顺序右移数组元素(内测第0届第5题)
- 重读博弈论(八)---海萨尼转换与贝叶斯法则
- 5秒钟搭建一个简单版的restful资源服务器
- 1.1 echo rem cd dir命令
- 克劳斯比的零缺陷——《可以量化的管理学》
- Jquery-easyUI-datagrid参数之 queryParams