从0开始搭建ns3环境以及NetAnim简单使用

一、环境准备

ns3是基于GNU/Linux平台使用C++开发的工具软件,在windows系统中安装使用ns3环境,可以使用虚拟机VMware并安装ubuntu系统来实现,现将本教程所用到的虚拟机和系统镜像放到网盘提供下载

名称链接提取码
VMware Workstation 17 Prohttps://pan.baidu.com/s/1IEPZdvGGUYJ4-oHW5AHaKwm3gm
ubuntu-18.04.6-desktop-amd64https://pan.baidu.com/s/1UEueh6bXdQ9LXRTZdMEEBAaopg

虚拟机以及Ubuntu系统安装过程请参考以下文章:

https://blog.csdn.net/u014151564/article/details/132279564

进入系统后,先将系统的源改为清华源或者是阿里,方便后续下载各种依赖

Ubuntu系统菜单→软件和更新→下载自

在这里插入图片描述

二、安装依赖

在Ubuntu系统桌面右键,选择打开终端

1、更新源

sudo apt-get update

2、安装软件包

  • 注意:下面的指令有两种方式来执行,软件包安装需要花大量的时间,你可以一条一条的在终端中执行,或者是将安装命令写入shell脚本,并加入自动确认参数(-y),然后执行脚本文件,不用一直守在那里
sudo apt-get install gcc g++ python python-dev
sudo apt-get install mercurial
sudo apt-get install bzr
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl-dev libgsl23
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++-3.4 gcc-3.4
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
sudo apt-get install python-sphinx dia
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 libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi*

三、安装ns3

NS3可通过Tarballs和Bake两种方式进行安装,以下将以Tarballs为例:创建Tarballs目录、进入目录、下载压缩包、解压

有关ubuntu下常见软件安装方法可参考文章:https://blog.csdn.net/java211/article/details/3044103

在Ubuntu桌面右键打开终端,然后按顺序执行以下指令

1、创建Tarballs目录
mkdir tarballs2、进入目录
cd tarballs3、下载压缩包
wget http://www.nsnam.org/release/ns-allinone-3.28.tar.bz24、解压
tar xjf ns-allinone-3.28.tar.bz2

四、编译ns3

安装完成后,在系统的主文件夹里会有刚才创建的名为tarballs的文件夹,我们的ns3就是安装在这里面,进入到解压后的ns3主文件夹,我们来到这里是因为需要使用build.py来编译ns3
在这里插入图片描述
在空白处右键,打开终端,然后执行以下命令

./build.py 

编译成功后会显示如下,这里耗费的时间会长一点,感觉时间长的话不用担心是不是出了问题
在这里插入图片描述
编译完成后我们再使用waf重新配置和编译ns3系统,虽然这不是必须的,但是一旦工程已经编译过,就不能再使用build.py脚本了,这时如果想改变原有ns3的配置就需要使用交互式waf命令进行重新配置和编译,步骤如下

1、进入到ns-3.28文件夹
cd ns-3.282、清除先前配置编译
./waf distclean3、重新配置ns3,优化编译包括例子和测试(默认的例子和测试是不编译的),然后系统会重新配置,编译系统会检查ns3以来的软件包是否安装
./waf configure --build-profile=debug --enable-examples --enable-tests4、以上仅是配置ns3,正式编译使用下面的命令
./waf build

至此,ns3编译完成,接下来进行测试

五、测试

还是在ns-3.28这个文件夹下打开终端(或者从终端使用cd指令直接进入)
执行如下指令

test.py是Python编写的测试脚本,下面的命令是测试ns3是否编译正确的典型方法
测试结果最后一行现实的是总共测试和通过测试的脚本数目

./test.py -c core

在这里插入图片描述

六、运行脚本测试

下面通过运行ns3提供的示例,再次验证ns3是否正常安装,首先执行如下命令

./waf --run hello-simulator

显示如下则测试通过
在这里插入图片描述
至此,ns3环境安装成功,后续会更新Netanim的简单使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简约时尚的健康手表,智能守护每一刻,dido Y60上手

智能手表是现在很流行的一种智能设备,很多品牌都推出了各种各样的产品,但是大部分都更侧重功能和运动的方面,健康监测往往只是配角,而随着人们对自己的健康越来越重视,有些朋友只是单纯的需要一块专业的健康监测手表。…

选择任务管理软件:哪个更适合你的需求?

随着互联网的发展,知识管理是可以成为企业获得更大发展前景的神兵利器,任务协同,是服务于中小型团队,或者大型机构的终端组织。来看看这款国外流行的任务管理软件Zoho Projects。 任务管理是企业协同的重要组成部分。 任务管理是企…

Bitcoin 加速交易操作示例

这里以 Bitcoin Ordinals NFT 为例, 进行加速交易演示 第1步:新建子账户 温馨提示:如果有多条鱼未确认,也只需1个账户即可,不必搞多个子账户 第2步:切换回到老地址(Account 1) 第3步…

【Kubernetes】Kubernetes的PV和PVC的用法

PV、PVC 前言一、 存储卷1. emptyDir 存储卷1.1 概念1.2 实例 2. hostPath 存储卷2.1 概念2.2 实例 3. nfs共享存储卷 二、PV 和 PVC1. 概念1.1 PV1.2 PVC1.3 PVC 的使用逻辑1.4 创建机制1.5 PV 和 PVC 的生命力周期1.6 创建及销毁 PV 的流程 2. PV 和 PVC 的创建2.1 查看定义2…

高并发内存池项目(C++实战项目)

项目介绍 项目来源 本项目实现了一个高并发内存池,参考了Google的开源项目tcmalloc实现的简易版;其功能就是实现高效的多线程内存管理。由功能可知,高并发指的是高效的多线程,而内存池则是实现内存管理的。 tcmalloc源码 项目…

【计算机网络】概述及数据链路层

每一层只依赖于下一层所提供的服务,使得各层之间相互独立、灵活性好,已于实现和维护,并能促进标准化工作。 应用层:通过应用进程间的交互完成特定的网络应用,HTTP、FTP、DNS,应用层交互的数据单元被称为报…

MySQL 中常见的几种高可用架构部署方案

MySQL 中的集群部署方案 前言 这里来聊聊,MySQL 中常用的部署方案。 MySQL Replication MySQL Replication 是官方提供的主从同步方案,用于将一个 MySQL 的实例同步到另一个实例中。Replication 为保证数据安全做了重要的保证,是目前运用…

数据结构初阶--二叉树的链式结构

目录 一.二叉树链式结构的概念 二.二叉树链式结构的功能实现 2.1.链式二叉树的定义 2.2.链式二叉树的构建 2.3.链式二叉树的遍历 2.3.1.先序遍历 2.3.2.中序遍历 2.3.3.后序遍历 2.3.4.层序遍历 2.4.链式二叉树的求二叉树的结点数量 法一:计数法 法二&a…

Linux知识点 -- 进程概念(补充)

Linux知识点 – 进程概念(补充) 文章目录 Linux知识点 -- 进程概念(补充)一、进程地址空间的堆区二、虚拟地址到物理地址之间的转化三、虚拟地址到物理地址之间的映射 一、进程地址空间的堆区 在用户每次使用malloc等函数在进程的…

OBD接口引脚定义

汽车的OBD接口引脚定义分配如下图所示,OBD接口共有16个引脚(可参考 ISO 15031-3)。 1、引脚1,3,8,9,11,12,13 引脚1,3,8,9,11,12,13由主机厂进行分配。 2、引脚2 如果车辆中使用SAE J1850 10,4 VPW(可变脉冲)来提供…

小红书运营 变现方法总结(精)

大家好,我是网媒智星,今天跟大家分享一下小红书运营方面的知识,怎样利用小红书变现?全篇倾情干货输出,认真学习,保证您收获多多。 首先,让我们来分析一下小红书平台的优势。关于卖东西&#xff…

vue + less 实现动态主题换肤功能

文章目录 前言一、前提条件1. 初始化vue项目2. 安装插件 二、新建文件夹主题theme1.style.less文件2.model.js文件3.theme.js文件theme文件夹最终效果 三、修改vue.config.js文件四、页面上的具体使用1. index.vue 页面2. index.vue 页面注意点说明3. index.vue 效果 五、在js中…

VSCode使用SSH无密码连接Ubuntu

VSCode使用SSH无密码连接Ubuntu 前提条件: 1. 能够正常使用vscode的Remote-ssh连接Ubuntu 2. Ubuntu配置静态ip(否则经常需要修改Remote-ssh的配置文件里的IP) 链接-> ubuntun 18.04设为静态ip(.net模式,可连接…

如何解决docker中出现的“bash: vim: command not found”

目录 问题描述: 问题解决: 问题描述: 在docker中,想要执行vim编辑文件,弹出“docker bash: vim: command not found“(如下图),请问该如何解决? 问题解决: …

FPGA应用学习笔记------系统复位一(同异复位)

要满足复位恢复时间才能正常复位,不然会产生输出准稳态,输出逻辑错误 复位恢复时间只会存在复位释放时刻,不会出现在确立时刻,则不推荐完全异步复位 完全同步复位,肯定是同步于时钟滴,并将总是满足时钟条件…

【Spring MVC】Spring MVC基于注解的程序开发

目录 一、什么是Spring MVC 二、Spring MVC项目的创建和使用 1、实现客户端和服务器端之间的连接 1.1、RequsestMapping注解 1.2、RequestMapper的简单使用 1.3、使用GetMapping和POSTMapping注解来实现HTTP连接 三、获取参数 1、实现获取单个参数 2、实现获取对象 3…

解决ubantu驱动掉了的问题

这里写自定义目录标题 解决ubuntu驱动掉了的问题 解决ubuntu驱动掉了的问题 首先确定是否有驱动: ls /usr/src | grep nvidia若有,则大概率是驱动版本与内核版本对应不上,则把内核版本切换为初始版本即可。参照:https://blog.cs…

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类…

nodejs+vue+elementui+express智慧社区小区物业管理系统的设计与实现_2p760

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementuiexpress vue的文件结构其实就是一个index.html 中间的内容,用的是vue,但最终都会转…

OpenCV图像处理——形态学操作

目录 连通性形态学操作腐蚀和膨胀开闭运算礼帽和黑帽 连通性 形态学操作 形态学转换是基于图像形状的一些简单操作。它通常在二进制图像上执行。腐蚀和膨胀时两个基本的形态学运算符。然后它的变体形式如开运算,闭运算,礼帽黑帽等 腐蚀和膨胀 cv.erode…