下载安装ns3的小伙伴都发现了,其开发环境需要很多配套工具,有些必选有些可选,当然工具越多使用起来越方便,以下是小编整理的所有ns3所需工具的指令,亲测可用!
一、NS3系统必需工具
以下是版本 3.36 及更高版本的最低要求:
C++ 编译器(g++ 或 clang++)、Python 3、CMake 构建系统以及单独的 C++ 构建工具(例如 make、ninja-build 或 Xcode)是ns3编译软件的最低要求。
ns3系统安装有两种方式,一种需要 tar 和 Bunzip2 实用程序来解压源文件存档。第二种,如果您想使用 Git 来获取代码,而不是下载源存档,则需要 git,从 Git 上克隆下ns3数据库。详细安装教程请参照文章:NS3-3.40 最新安装教程-CSDN博客
安装g++ 、python3 、Cmake等工具指令如下:
$ apt install g++
$ apt install python3
$ apt install cmake
$ apt install ninja-build
$ apt install git
二、推荐安装工具
以下工具推荐大部分用户都要安装:
1. Ccache 编译器缓存优化工具(适用于 ns-3.37 及更高版本)
Ccache 是一种编译器缓存优化工具,可以加快跨多个 ns-3 目录的构建速度,但代价是在缓存中使用最多 5 GB 的额外磁盘空间。强烈建议安装,构建库是很考验CPU的工作,有了缓存记录,能节约很多时间。
$ apt install ccache
2. 代码格式检查工具 (code linting)
自 ns-3.37 发布以来,强制 ns-3 采用 Clang-Format 和 Clang-Tidy 的编码风格。
用户可以直接从命令行或通过(utils/check-style-clang-format.py)检查程序调用这些工具。此外,clang-tidy 与 CMake 集成,支持在构建阶段进行代码扫描。
安装命令如下:
$ sudo apt install clang-format
编写模块时建议使用 clang-tidy, 以遵循代码约定并可以提供代码中可能出现的错误提示。
$ sudo apt install clang-format
3. 调试工具 (Debugging)
GDB 和 Valgrind 对于调试很有用,如果您正在进行新模型或场景的 C++ 开发,建议使用 GDB 和 Valgrind。以上两个工具都适用于Linux和BSD系统;对于 macOS,LLDB 与 GDB 类似,但 Valgrind 似乎不适用于 M1 机器。
$ sudo apt install gdb valgrind
三、可选工具
提示:从 ns-3.30 版本(2019 年 8 月)开始,ns-3 默认使用 Python 3,但早期版本依赖于 Python 2 软件包,建议至少使用 Python 2 解释器。如果为早期版本安装以下先决条件,通常可以替换“python”,其中在下面找到“python3”(例如,安装“python-dev”而不是“python3-dev”)。
1. 读取 pcap 数据包跟踪
许多 ns-3 示例生成 pcap 文件,可以通过 Tcpdump 和 Wireshark 等 pcap 分析器查看。
$ sudo apt install tcpdump
2. 数据库支持
如果您正在使用统计框架或者正在运行 LTE 或 NR 模拟(使用 SQLite 数据库),建议使用 SQLite:
$ sudo apt install sqlite sqlite3 libsqlite3-dev
3. Python 绑定(ns-3.37 及更高版本)
ns-3 Python 支持现在使用 cppyy。版本 2.4.2 是最新支持的 cppyy 版本;目前不支持 3.0.0 版本。由于 cppyy 的上游限制,Python 绑定无法在采用 Apple 芯片(M1 和 M2 处理器)的 macOS 计算机上运行。
$ python3 -m pip install --user cppyy==2.4.2
4. PyViz 可视化工具
PyViz 可视化工具使用各种支持 GraphViz 的 Python 包。一般来说,要在 ns-3 中启用 Python 支持,需要 cppyy。
$ 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
5. 基于MPI的分布式仿真
如果您打算运行大型并行 ns-3 模拟,则需要开放 MPI 支持。
$ sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
6. NetAnim动画师
NetAnim animator需要Qt qt5开发工具; qt4 也可以工作,但我们已经迁移到 qt5。 qt6兼容性未测试。
$ sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
7. Doxygen
仅当您打算为头文件编写新的 Doxygen 文档时才需要 Doxygen
$ sudo apt install doxygen graphviz imagemagick
$ sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
8. Sphinx 文档
ns-3 手册 (doc/manual)、教程 (doc/tutorial) 和其他内容都是用 Sphinx 的 reStructuredText 编写的,并且图形通常以 dia 为单位。要构建 PDF 版本,需要 texlive 包。
$ sudo apt install python3-sphinx dia
9. Eigen3 支持
在 LTE 和 NR 模拟中使用 3GPP 传播损耗模型时,Eigen3 用于支持更高效的计算。
$ sudo apt-get install libeigen3-dev
10. GNU 科学图书馆 (GSL)
GNU 科学库 (GSL) 仅用于更准确的 802.11b(传统)WiFi 错误模型(更现代的基于 OFDM 的 Wi-Fi 不需要)。
$ sudo apt install gsl-bin libgsl-dev libgslcblas0
11. 基于 XML 的配置存储版本
基于 XML 的配置存储功能需要 Libxml2
$ sudo apt install libxml2 libxml2-dev
12. 基于GTK的配置系统
GTK 开发库还与(可选)配置存储相关,用于图形桌面支持。
$ sudo apt install libgtk-3-dev
13. 试验虚拟机和 ns-3
Linux 系统可以使用 LXC 和 TUN/TAP 设备驱动程序来支持仿真。
$ sudo apt install vtun lxc uml-utilities
14. 支持openflow模块
OpenFlow 交换机支持需要 XML 和 Boost 开发库。
$ sudo apt install libxml2 libxml2-dev libboost-all-dev
15. 支持bake构建工具
$ apt install mercurial unzip
提示:当你安装完需要的包和库之后,需要重新构建编译才能完成设置。
$ ./ns3 configure
$ ./ns3 build
PS:有什么问题可以评论区告诉我,小编会不定时更新。