NS3详细安装教程_ns3安装-程序员宅基地

技术标签: 计算机网络原理  ubuntu  linux  

一、安装虚拟机以及Ubuntu

详细安装教程,亲测可用:https://blog.csdn.net/yangzhenyu2/article/details/116238467

二、安装依赖库

推荐使用下列命令安装依赖库,可以傻瓜无脑安装,原实验指导书中的命令有依赖冲突问题,喜欢折腾的可以用实验指导书的命令,不过仍需要你们开动小脑瓜解决版本冲突问题。

以下命令来自ns3官方安装流程 https://www.nsnam.org/wiki/Installation

sudo apt-get install gcc g++ python python3

sudo apt-get install gcc g++ python python3 python3-dev

sudo apt-get install python3-setuptools git mercurial

sudo apt-get install qt5-default mercurial

sudo apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3  

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

sudo apt-get install autoconf cvs bzr unrar

sudo apt-get install gdb valgrind 

sudo apt-get install uncrustify

sudo apt-get install doxygen graphviz imagemagick

sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

sudo apt-get install python3-sphinx dia 

sudo apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0

sudo apt-get install tcpdump

sudo apt-get install sqlite sqlite3 libsqlite3-dev

sudo apt-get install libxml2 libxml2-dev

sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake 

sudo apt-get install libgtk2.0-0 libgtk2.0-dev

sudo apt-get install vtun lxc uml-utilities

sudo apt-get install libboost-signals-dev libboost-filesystem-dev

三、安装ns3基础模块

推荐使用3.27版本,最新版是3.30.1版本,会有一些编译问题。

打开桌面终端执行如下命令

cd

mkdir tarballs

cd tarballs

wget http://www.nsnam.org/release/ns-allinone-3.27.tar.bz2

然后执行下列命令进行解压缩(你用图形化界面的提取也可以,一样的)。

tar -xjvf ns-allinone-3.27.tar.bz2

然后进入文件夹,进行编译流程,有1800+文件,这个过程会比较缓慢,推荐设置虚拟机不要息屏,会产生中断,会有一些奇奇怪怪的问题。

cd ns-allinone-3.27 

sudo ./build.py

编译完成后会看见如下界面。
在这里插入图片描述

如果你执行下列命令,

cd ns-3.27 

sudo ./waf  --run hello-simulator

可以出现,下面界面,说明你安装成功了。
在这里插入图片描述
如果是如下界面,说明还有一些小问题,需要执行下列命令。
在这里插入图片描述
然后执行下列命令,再次进行编译,2500+文件。

cd ns-3.27 

sudo ./waf clean 

sudo ./waf -d debug --enable-example --enable-tests configure  

sudo ./waf

再次执行上文的

sudo ./waf  --run hello-simulator

应该就没问题了。

四、编译NetAnim可视化部分

返回目录ns-allinone-3.27,进入目录netanim-3.108,执行下列命令

cd ../

cd netanim-3.108

sudo make clean

sudo qmake NetAnim.pro

sudo make

编译结束后执行

sudo ls

有NetAnim的话,执行

sudo ./NetAnim  

打开如下仿真界面,

在这里插入图片描述

安装全部完成

附录:你可以运行下tutorial文件夹下的官方小例子,流程如下。

这里使用的NS3自带例子,所以可以直接进入ns-3.xx/examples/tutorial目录会发现first.cc脚本,要运行自己的脚本,你所需要做的仅仅是把你的脚本放到scratch目录下,通过waf,这样你的脚本就会被编译。

cp examples/tutorial/first.cc scratch/myfirst.cc

现在使用waf命令来编译自己的第一个实例脚本:

sudo ./waf

现在你能够运行这个例子(注意如果你在scratch目录编译了你的程序,你必须在scratch目录外运行它):
注意这里是myfirst而不是myfirst.cc!

sudo ./waf --run scratch/myfirst

会出现如下的结果。
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yangzhenyu2/article/details/116205406

智能推荐

python overflowerror_python – 是否真的引发了OverflowError?-程序员宅基地

文章浏览阅读520次。Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> float(1...

详解SwiftUI数据流是怎么在View间传递的_ios 怎么把swiftui事件传到uiview里-程序员宅基地

文章浏览阅读1.9k次。作为一个声明式的UI框架,SwiftUI帮我们处理了几乎所有关于UI和数据之间的交互,这使我们不再需要关注数据变化时刷新UI和用户交互以后更新数据的逻辑。为了实现数据和UI的绑定,我们需要利用Swift的一些关属性包装器来向SwiftUI描述它们之间的关系,那么让我们开始吧。到公众号【iOS开发栈】学习更多SwiftUI、iOS开发相关内容。State Properties @State在前面的一篇文章中当我们给数组添加或者删除元素时,列表会自动响应变化,正是因为使用了@State._ios 怎么把swiftui事件传到uiview里

1-8 linux系统中的软件管理-程序员宅基地

文章浏览阅读99次。#### 1.Linux中软件包的类型 ####1.DEB#UBlinux DEBlinux2.RPM #redhat centOS fadora3.bz2|gz|xz#1.需要源码安装需要编译 #2.绿色软件,直接可用 #ntfs-3g_ntfsprogs-2017.3.23.tgz需要编译 "configur...

基于动态用户偏好和服务质量的推荐算法-程序员宅基地

文章浏览阅读4.9k次。引用:Zhang Y, Qian Y, Wang Y. A RecommendationAlgorithm Based on Dynamic User Preference and Service Quality[C]//2018 IEEEInternational Conference on Web Services (ICWS). IEEE, 2018: 91-98.摘要:在服务计算领域...

python二级考试选择题公共基础知识_计算机二级选择题(公共基础知识)-程序员宅基地

文章浏览阅读1.9k次。在这一期的文章主要以计算机二级选择题的公共基础知识进行讲解。在计算机二级考试当中,选择题中的二级公共基础知识是必考的部分。很多考生对计算机二级的公共基础知识选择题有很多不解。二级公共基础知识选择题主要考这些内容。未来教育题库界面截图主要由四章内容组成:数据库结构与算法、程序设计基础、软件工程基础、数据库设计基础一、数据库结构与算法这一章主要难点是对栈与队列以及树与二叉树的理解。话不多说,,直接上例..._计算机二级python公共基础题选择题是什么

VS2013 修改TFS的本地映射路径-程序员宅基地

文章浏览阅读2.2k次。在源代码管理器里面 找到你的本地工作区然后点击编辑按钮修改本地目录_vs怎么更改映射路径

随便推点

Android面试官,面试时总喜欢挖基础坑,整理了26道面试题牢固你基础!(3)-程序员宅基地

文章浏览阅读795次,点赞20次,收藏15次。AIDL是使用bind机制来工作。java原生参数Stringparcelablelist & map 元素 需要支持AIDL其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

机器学习-数学基础02补充_李孟_新浪博客-程序员宅基地

文章浏览阅读248次。承接:数据基础02

短沟道效应 & 窄宽度效应 short channel effects & narrow width effects-程序员宅基地

文章浏览阅读2.8w次,点赞14次,收藏88次。文章目录1. 概念:Narrow Width Effect: 窄宽度效应Short Channel effects:短沟道效应阈值电压 (Threshold voltage)2. 阈值电压与沟道长和沟道宽的关系:Narrow channel 窄沟的分析Short channel 短沟的分析1. 概念:Narrow Width Effect: 窄宽度效应在CMOS器件工艺中,器件的阈值电压Vth 随着沟道宽度的变窄而增大,即窄宽度效应;目前,由于浅沟道隔离工艺的应用,器件的阈值电压 Vth 随着沟道宽度_短沟道效应

小米组织架构再调整,王川调职,雷军自任中国区总裁_小米更换硬件负责人-程序员宅基地

文章浏览阅读335次。5月17日,小米集团再发组织架构调整及任命通知。新通知主要内容为前小米中国区负责人王川调职,雷军自任中国区总裁。小米频繁调整背后,雷军有些着急了中国区手机业务持续下滑。根据IDC最近公布的数据,小米一季度全球出货量为2750万台,相比去年同期的2780万台,小幅下降。参考Canalys、Counterpoint的统计,小米一季度出货量也都录得1%的同比下滑。作为对比,IDC数据显示,华为同期出..._小米更换硬件负责人

JAVA基础学习大全(笔记)_java学习笔记word-程序员宅基地

文章浏览阅读9.1w次。JAVASE和JAVAEE的区别JDK的安装路径[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-perPRPgq-1608641067105)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20201222001641906.png)]卸载和安装JDK[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYnXvbAn-1608641067107)(C:\Users_java学习笔记word

vue-echarts饼图/柱状图点击事件_echarts 饼图点击事件-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏17次。在实际的项目开发中,我们通常会用到Echarts来对数据进行展示,有时候需要用到Echarts的点击事件,增加系统的交互性,一般是点击Echarts图像的具体项来跳转路由并携带参数,当然也可以根据具体需求来做其他的业务逻辑。下面就Echarts图表的点击事件进行实现,文章省略了Echarts图的html代码,构建过程,option,适用的表格有饼图、柱状图、折线图。如果在实现过程中,遇到困难或者有说明好的建议,欢迎留言提问。_echarts 饼图点击事件

推荐文章

热门文章

相关标签