NS3-3.40 最新安装教程

前言

最近做仿真实验需要用到NS3系统,开始学习时是真的折磨人啊!!!

小编搜集各种资料并数次尝试,整理出一套最新安装流程,以供各位参考。

小编因为要仿真5G通信系统,安装的是最新版本3.40,在3.36版本以前安装过程和此教程有些出入,需要注意区分。


一、NS-3 简介

        ns-3 是一组 C++ 库(通常编译为共享库),可以用 C++ 或 Python 程序来构建模拟场景并执行模拟。在核心库中我们可以调用可用代码库的子集来构建程序,也还可以编写链接其他C++共享库(或导入其他Python模块)的程序,也就是其他人贡献的非核心库代码,此外也可以自己编写成熟的代码库,并上传共享给其他人使用(这是成熟大佬们的操作)。

        ns-3 使用 CMake 构建系统(在版本 3.36 之前,使用 Waf 构建系统)。它可以从命令行或通过代码编辑器程序构建。

        大多数用户使用 C++ 来编写 ns-3 程序; Python 调用不太常用,但也可以用 Python 进行数据处理。从 ns-3.37 开始,ns-3 使用 cppyy 生成运行时 Python 绑定,从 ns-3.39 版本开始,ns-3 在 Pip 存储库中可用,在ns-3.39之后使用 Python 编写程序会变得简单一些。


二、准备工作

2.1 运行环境准备

        ns-3 有各种可选扩展,但主要功能只需要 C++ 编译器(g++ 或 clang++)、Python(版本 3.36 或更高版本)、CMake 和构建系统(例如 make、ninja、Xcode)。详细环境准备工作可以参见文章:NS3最全配套环境设置-CSDN博客

这里我们仅关注如何在最新的 C++ 编译器和 Python 运行时支持支持的系统上启动并运行 ns-3。

       1) 对于 ‘Linux’,请使用 g++ 或 clang++ 编译器。

       2)对于 macOS,请使用 clang++(可在 Xcode 或 Xcode 命令行工具中使用)。

       3) 对于 Windows,可以在大多数用例中使用带有 MinGW64 工具链的 Msys2 工具(自 ns-3.37 起)。

对于 ns-3.37 之前的版本,或者要使用模拟模式或 Python 绑定,我建议使用 Linux 虚拟机或适用于 Linux 的 Windows 子系统。

2.2 各类工具版本要求

        如果想正常使用NS3系统仿真,要匹配合适的工具版本,当然是越新越好,高版本基本兼容低版本。以下是各个工具版本要求,供大家参考:

类型工具       最低版本要求
下载工具

git (使用Git下载需要)

tar 和 bunzip2(网页下载需要)

没有版本要求
编译器

g++ 

clang++   (两个编译器二选一)

>= 9

>= 10

环境配置Python3>= 3.5
构建系统

Cmake

make, ninja, Xcode(任选一个)

>= 3.10

没有版本要求

        如果不知道自己系统里是否安装了以上工具或者不清楚版本的,可以在终端命令栏中输入以下命令来查看:

工具查看版本命令
g++$ g++ --version
clang++$ clang++ --version
Python3$ python3 -v
Cmake$ cmake --version

        需要下载或者更新工具版本可以通过 git 或者源存档下载(网络浏览器、wget或curl),有需要的可以参考我另一篇NS3工具准备的文章,这里不多描述了。


三、下载安装

        下载安装主要有两种方式,任选一种就可以。

1. 方法一:下载tarball

        从官网下载tarball压缩包,然后解压到一个目录中,可以自定义目录,例如: ns-allinone-3.40 ,解压包中包含了 ns-3 和一些其他程序,下面是使用 wget 命令行下载,也可以通过浏览器官网下载。

下载 tarball:

$ wget https://www.nsnam.org/releases/ns-allinone-3.40.tar.bz2

解压:

$ tar xfj ns-allinone-3.40.tar.bz2

进入解压后文件夹:

$ cd ns-allinone-3.40/ns-3.40

以下是文件夹显示内容:

进入ns-3.40文件后显示以下内容:

2. 方法二:从 Git 存储库克隆

从 Git 库中下载包:

$ git clone https://gitlab.com/nsnam/ns-3-dev.git

进入文件夹:

$ cd ns-3-dev

注意:

        1)如果你选择方法一,解压tar包,你的目录文件名称会包含版本号,如果选择方法二,克隆ns-3,你的目录命名为ns-3-dev。

        2)两种方法都可以,看个人习惯,熟练使用 git 的各位用Git库可能更顺手一些。默认情况下,Git 将迁出 ns-3 master 分支,这是一个开发分支,便于开发管理。而使用方法一下载的包,如名字所言‘all in one’,只有一个主目录。

        3)使用 git 方法安装的,所有版本都在 Git 中标记,因此如果想查看过去的版本,可以进行如下操作:

$ git checkout -b ns-3.40-release ns-3.40


四、构建和测试 ns-3

        通过下载版本压缩包或克隆 Git 存储库获得源代码后,下一步是使用 CMake 构建系统配置。以下命令使用 CMake 的 Python 包装器(称为 ns3),它简化了命令行语法,类似于 Waf 语法​​。有多个选项可以控制构建,但通常首先会为默认构建配置文件(启用断言并支持 ns-3 日志记录)启用示例程序和测试:

$ ./ns3 configure --enable-examples --enable-tests

        根据 CPU 的速度,配置命令可能需要几秒钟到一分钟不等(考验电脑性能的时候到了)。

        然后,使用 ns3 程序构建 ns-3 模块库和可执行文件:

$ ./ns3 build

        构建时间根据 CPU 核心数量、CPU 和内存的速度以及构建模式(更快的调试模式,还是更慢的默认或优化模式)而有所不同。附加配置(本文未介绍,可参考我另一篇文章)可用于限制构建的范围,并且 ccache(如果安装)可以加快速度。一般来说,计划在更快的工作站上花费几分钟进行构建。

        最开始构建模块库的时候会非常慢,它是把所有配置、库以及代码都构建一个副本,我用的虚拟器,配备了2个 CPU, 4G处理内存,新构建一次库需要40分钟左右,也和我配置工具比较完善有关。但构建一次后,尤其是安装 ccache 之后,只要不清理构建缓存,更新代码,构建新文件速度会很快,十几秒到一分钟不等。所以 ccache 一定要安装,虽然占用内存比较大。

        构建完成后可以运行单元测试来检查构建:

$ ./test.py

        该命令应该运行数百个单元测试。如果它们通过了,就成功完成了 ns-3 的初始构建。

        初学者安装到此就结束了,如果你要是用 Python 操作 NS3, 那么可以继续看下一章节。


五、Python库: ns-3 install

        大多数用户不会将 ns-3 库安装到典型的系统库目录中;相反,它们只是将库留在构建目录中,ns3 Python 程序将找到这些库。

        当然,也可以执行安装步骤:

$ ns3 install

        需要注意的是,安装库的位置由在配置步骤中指定的 --prefix 选项设置。前缀默认为/usr/local。对于给定的 --prefix=$PREFIX,安装步骤会将标头安装到 $PREFIX/ include 目录,将库和 pkgconfig 文件安装到 $PREFIX/lib 目录,并将一些二进制文件安装到 $PREFIX/ libexec 目录。例如,./ns3 configure --prefix=/tmp,后跟 ./ns3 build 和 ./ns3 install,将导致文件安装在 /tmp/include、/tmp/lib 和 /tmp/libexec 中。

        此外,ns3 脚本会阻止以 root(或 sudo 用户)身份运行该脚本。因此,使用默认前缀 /usr/local 时,除非用户具有该目录的写入权限,否则安装将失败。即便尝试使用 sudo ./ns3 install 强制执行此操作也会失败,因为 ns3 程序中的检查模块会阻止以 root 身份运行。此检查由 ns-3 维护者安装,以确保新手用户的安全,新手用户可能会在 root shell 中运行 ./ns3,然后在普通 shell 中运行,并对错误感到困惑,从而导致缺乏修改文件的权限。对于知道自己在做什么并且想要安装到特权目录的用户,可以注释掉 ns3 程序中的拒绝_run_as_root() 语句(第 1400 行左右),然后运行 ​​sudo ./ns3 install。

如果还有疑问的小伙伴可以看 ns3 官网安装教程:ns-3.40 | ns-3

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值