Ubuntu 安装 ns-3 教程

Ubuntu 安装 ns-3最全 教程
在这里插入图片描述

1. 环境更新


sudo apt update
sudo apt install git

在这里插入图片描述

2. Ns3 最低依赖要求

在这里插入图片描述

2.1 安装依赖

安装依赖网址:根据自己安装的版本安装对应依赖。

https://www.nsnam.org/wiki/Installation

Ubuntu/Debian/Mint

以下软件包列表在 Ubuntu 22.10 版本中应该是准确的;其他版本或其他基于 Debian 的系统可能略有不同。Ubuntu 16.04 LTS 版本可能是已知可与最新 ns-3 版本配合使用的最古老的版本。

软件包列表取决于您尝试构建的 ns-3 版本。

版本 3.36 及更高版本的最低要求:

sudo apt install g++ python3 cmake ninja-build git

如果您只下载源存档,则不需要 Git。

Ubuntu 自带 “make” 构建工具,但如果缺少它(其他一些基于 Debian 的发行版上),可能需要安装 makeninja-build。Ninja 是 make 的替代品。

推荐用于 3.37 及更高版本:

Ccache 是一种编译器缓存优化,加快构建速度,但会额外使用多达 5 GB 的磁盘空间。


sudo apt install ccache

注意:对于 Ubuntu 20.04 及更早版本,apt 提供的 ccache 版本(3.7.7 或更早)可能无法提供性能优势,建议安装版本 4 或更高。对于 Ubuntu 22.04 及更高,可以直接使用 apt 安装。

版本 3.30-3.35 的最低建议要求:

sudo apt install g++ python3
3.29 及更早版本的最低建议要求:

sudo apt install g++ python2

注意:
从 ns-3.30 版本(2019 年 8 月)开始,ns-3 默认使用 Python 3,但早期版本依赖 Python 2 包,建议至少使用 Python 2 解释器。
2022 年 1 月(ns-3.36 及 ns-3-dev),最低 g++ 版本为 g+±8。
Ubuntu 18.04/16.04 默认 g++ 版本较老,可通过 StackOverflow 和 Launchpad 获取更高版本。


3. 可选/推荐组件依赖

3.1 Python 可视化工具和绑定(ns-3.37 及更高)

sudo apt install python3-pip
python3 -m pip install --user cppyy
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

3.2 Python API 用户(3.30 ~ 3.36)


sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake

3.3 Python(开发)

需要 ns-3-allinone 仓库(Git 克隆),还需:

sudo apt install python3-setuptools git

3.4 Netanim 动画工具


sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools

Ubuntu 20.10 及更早版本:


sudo apt install qt5-default

3.5 支持 ns-3-pyviz 可视化工具(3.36 及更早版本)

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

3.28 及更早版本:

sudo apt install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython

3.6 基于 MPI 的分布式仿真

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

3.7 支持 bake 构建工具

sudo apt install mercurial unzip

3.8 调试 Debug

sudo apt install gdb valgrind

3.9 代码样式检查(自 ns-3.37 起)

sudo apt install clang-format

注意:需要 clang-format-14 到 clang-format-16 版本。

3.10 Doxygen 和内联文档

sudo apt install doxygen graphviz imagemagick
sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

3.11 ns-3 手册和教程 (Sphinx)

sudo apt install python3-sphinx dia

ns-3.15 需要 Sphinx >= 1.12,检查版本用 sphinx-build

3.12 GNU 科学图书馆 (GSL)

sudo apt install gsl-bin libgsl-dev libgslcblas0

3.13 读取 pcap 数据包

sudo apt install tcpdump

3.14 统计框架数据库支持

sudo apt install sqlite sqlite3 libsqlite3-dev

3.15 基于 XML 的配置存储

sudo apt install libxml2 libxml2-dev

3.16 支持生成修改后的 python 绑定(ns-3.36 及更早)

sudo apt install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip
python3 -m pip install --user cxxfilt

需要手动安装 CastXML 和 Pygccxml(建议源代码构建)。

3.17 基于 GTK 的配置系统

sudo apt install libgtk-3-dev

3.18 虚拟机和 ns-3

sudo apt install vtun lxc uml-utilities

3.19 openflow 模块和 Boost 开发库

sudo apt install libxml2 libxml2-dev libboost-all-dev

4. 下载和编译 ns-3

cd ~
mkdir workspace
cd workspace
git clone https://gitlab.com/nsnam/ns-3-allinone.git

在这里插入图片描述

cd ns-3-allinone
ls

在这里插入图片描述

python3 download.py

在这里插入图片描述

下载指定版本**(例如 ns-3.44):


python3 download.py -n ns-3.44

5. 编译和测试

5.1 Debug 编译


./ns3 configure --build-profile=debug --enable-examples --enable-tests

在这里插入图片描述
%8B.assets%2Fimage-20250730164830248.png&pos_id=img-KPP7m60g-1753924561480)

5.2 编译


./ns3 build

在这里插入图片描述

5.3 测试用例执行


./test.py

在这里插入图片描述

5.4 显示编译版本


./ns3 show profile

在这里插入图片描述
%E5%AE%89%E8%A3%85%20ns-3%20%E6%95%99%E7%A8%8B.assets%2Fimage-20250730171923064.png&pos_id=img-fkmvXIGM-1753924561481)

5.5 执行程序


./ns3 run first

在这里插入图片描述

5.6 编写程序

scratch/ 文件夹下,只能有一个 .cc 文件。


6. NetAnim3.109 编译


cd ~/workspace/ns-3-allinone/netanim-3.109
qmake
make

编译完成后会出现一个 NetAnim 执行文件,然后:


./NetAnim

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

《林景媚与命运解放者》

《林景媚与命运解放者》——当数据库成为命运的主宰,谁将成为人类自由意志的解放者?《林景媚数据库宇宙》系列第十二部第一章:解放者的召唤公元 2098 年,随着“命运终结者”的威胁被解除,PostgreSQL Quantum Engine&am…

linux编译基础知识-头文件标准路径

&#x1f4c2; ​​1. 系统路径结构差异​​ 要查看 GCC 的默认头文件搜索路径&#xff0c;可通过以下方法操作&#xff08;以 Linux 环境为例&#xff09;&#xff1a; ​​1. 查看 C 语言头文件路径​​ gcc -v -E -xc - < /dev/null 2>&1 | grep -A 100 "#in…

离线语音芯片有哪些品牌和型号?

离线语音芯片的品牌有很多&#xff0c;型号也有很多&#xff0c;因为离线语音芯片的市场很大&#xff0c;几乎所有的想要语音控制的产品都可以通过增加一颗离线语音芯片来实现语音控制的能力&#xff0c;今天主要提到的就是离线语音芯片品牌厂家之一的唯创知音。唯创知音发展历…

Linux 软件包管理

Linux 软件包管理 分析 RPM 包 Linux 发行版本以 RHEL 为代表的发行版本&#xff0c;使用rpm包管理系统&#xff1a; RHEL (Red Hat Enterprise Linux&#xff09;Fedora&#xff08;由原来的RedHat桌面版本发展而来&#xff0c;免费版本&#xff09;CentOS&#xff08;RHEL的…

使用 Vue 3.0 Composition API 优化流程设计器界面

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

2025Nacos安装Mac版本 少走弯路版本

https://github.com/alibaba/nacos 一开始看网上文章&#xff0c;随便下了一个最新的3.0.2&#xff0c;然后出现很多错误 密钥等等问题&#xff0c;最后启动了&#xff0c;但是打不开链接&#xff1a;http://localhost:8848/nacos 然后开始找问题日志&#xff0c;/.nofollow/…

sifu mod制作 相关经验

sifu mod制作一遍流程数据传递后拆开是ok的&#xff0c;没必要合并 断片不能使用原材质不然导入ue里没法片段选择 效果拔群 带自动权重就会有跟随骨骼的效果&#xff0c;空顶点组会跟随父级的原点 这个选负的会抵消胶囊的碰撞效果 应用并刷新布料模拟&#xff08;相当于工程图的…

论文精读笔记:Overview

本文档记录了一些经典论文的讲解笔记。 重读经典&#xff1a;《ImageNet Classification with Deep Convolutional Neural Networks》 重读经典&#xff1a;《Generative Adversarial Nets》 重读经典&#xff1a;《Deep Residual Learning for Image Recognition》 重读经典…

Elasticsearch+Logstash+Filebeat+Kibana单机部署

目录 一、配置准备 下载java&#xff0c;需要java环境 二、单机模式 ELK部署 修改域名解析 elasticsearch配置 启动elasticsearch服务 查看是否启用 查看监听端口 logstash服务 创建配置文件 kibana 启动服务kebana 验证 网页访问 ​编辑 生成图表 回到网页 一、配置准…

redis快速部署、集成、调优

redis快速部署、集成、调优 1.部署 1.1 docker部署 参考&#xff1a;https://blog.csdn.net/taotao_guiwang/article/details/135508643 1.2 redis部署 资源见&#xff0c;百度网盘&#xff1a;https://pan.baidu.com/s/1qlabJ7m8BDm77GbDuHmbNQ?pwd41ac 执行redis_insta…

大学生HTML期末大作业——HTML+CSS+JavaScript音乐网站

HTMLCSSJS【音乐网站】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计&#x1f4a5; 文章目录一、&#x1f3c1; 网站题目二、&#x1f6a9; 网站描述三、&#x1f38c; 网站介绍四、&#x1f3f4; 网站效果五、&#x1f3f3;️ 网站代码六、&#x1f3f3…

ARP协议是什么?ARP欺骗是如何实现的?我们该如何预防ARP欺骗?

ARP&#xff08;Address Resolution Protocol&#xff0c;地址解析协议&#xff09;是一个工作在数据链路层&#xff08;OSI第二层&#xff09;和网络层&#xff08;OSI第三层&#xff09;之间的基础网络协议&#xff0c;它的核心功能是将网络层地址&#xff08;IP地址&#xf…

一个物理引擎仿真器(mujoco这种)的计算流程

物理仿真的核心循环 一个典型的物理仿真引擎&#xff0c;在每一个时间步&#xff08;dt&#xff09;内&#xff0c;大致会执行以下流程&#xff1a; 确定当前状态 (State)&#xff1a;获取所有物体当前的位置 q 和速度 v。计算力 (Forces)&#xff1a;根据当前状态&#xff0c;…

自然语言处理NLP(3)

上文&#xff1a; 自然语言处理NLP&#xff08;1&#xff09; 自然语言处理NLP&#xff08;2&#xff09; Gated RNN & LSTM 简单RNN存在的问题 随着时间的回溯&#xff0c;简单RNN不能避免梯度消失或者梯度爆炸 梯度裁剪 用来解决梯度爆炸问题 code: g&#xff1a;所有参…

内循环全部满足条件后,为true

### 实现方式在 C 中&#xff0c;可以通过在内循环外部定义一个布尔变量&#xff0c;并在内循环的每次迭代中检查特定条件是否满足。如果所有迭代均满足条件&#xff0c;则在内循环结束后将布尔变量设置为 true。以下是一个示例代码&#xff1a;cpp #include <iostream>i…

STM32--DHT11(标准库)驱动开发

一、前言在我们进行嵌入式开发时&#xff0c;驱动开发也是十分重要的一步&#xff0c;在很多时候&#xff0c;我们的都需要自己来编写硬件的底层驱动&#xff0c;实现硬件与芯片的通信&#xff0c;常见的协议有SPI&#xff0c;IIC&#xff0c;以及单总线的一些通信方式&#xf…

HttpServletRequest 和 HttpServletResponse核心接口区别

HttpServletRequest 和 HttpServletResponse核心接口区别在 Java Web 开发&#xff08;基于 Servlet 规范&#xff09;中&#xff0c;HttpServletRequest 和 HttpServletResponse 是两个核心接口&#xff0c;分别代表 ​​HTTP 请求​​ 和 ​​HTTP 响应​​。它们的主要区别在…

win10 环境删除文件提示文件被使用无法删除怎么办?

因为我没想太好怎么模拟一个文件被使用&#xff0c;我就使用 "java -jar xxx.jar" 模拟 xxx.jar 文件被使用无法删除吧。现在有一个后台进行在执行 java -jar chat-robot-1.0.0.jar &#xff0c;所以此时删除 chat-robot-1.0.0.jar 提示&#xff1a;当然这个提示对于…

1.7vue生命周期

生命周期阶段与钩子函数创建阶段beforeCreate()&#xff1a;实例初始化之后&#xff0c;数据观测和事件配置之前调用。此时无法访问到data、methods等属性。created()&#xff1a;实例创建完成后调用。完成了数据观测&#xff0c;属性和方法的运算&#xff0c;watch/event事件回…

第十八天(指纹识别WAF判断蜜罐排除)

Web架构 开源CMS&#xff1a; Discuz、WordPress、PageAdmin、蝉知等 前端技术&#xff1a; HTML5、Jquery、Bootstrap、Vue、NodeJS等 开发语言&#xff1a; PHP、JAVA、Ruby、Python、C#、JS、Go等 框架组件&#xff1a; SpringMVC、Thinkphp、Yii、Tornado、Vue等 Web服…