利用 msys2+mingw-w64 在 windows 上运行 NS3

2023-4-15 20:20| 发布者: wanhu| 查看: 117| 评论: 2

摘要: 之前苦于没有专用的 linux 服务器,一直用 hyperV 在 windows 上创建 linux 子系统跑 NS3,但这样会造成传输文件、编辑代码不太方便。最近发现 NS3 推出了 3.37 版本,在介绍中写道:For Windows, Msys2 tools with ...

之前苦于没有专用的 linux 服务器,一直用 hyperV 在 windows 上创建 linux 子系统跑 NS3,但这样会造成传输文件、编辑代码不太方便。最近发现 NS3 推出了 3.37 版本,在介绍中写道:

For Windows, Msys2 tools with the MinGW64 toolchain can be used (since ns-3.37) for most use cases.[1]

于是想着来试试该如何利用 msys2 实现 NS3 直接运行在 windows 系统上。

一、安装 msys2

按照 msys2 官网给出的安装步骤进行,安装文件夹可以是任意路径,但需要保证安装磁盘为 NTFS,路径无中文、空格。

安装过程中需要将 antivirus 类的软件或服务暂时关闭,否则安装会卡在签名环节,具体可以查看 issue2580。

安装好 msys2 后,它会提供不同的环境供大家选择,不同的环境对应不同的工具链,可以参考官方介绍。在这里为了更好的兼容性,选择 UCRT64 环境。

二、准备 NS3 的前置条件

按照 NS3 的新手教程,编译 NS3 项目需要 C++ 编译器、Python、CMake 等前置条件,因此需要在 msys2 中进行安装。这里需要注意的是,由于采用的是 UCRT64 环境,因此安装的包均来自于 mingw-w64-ucrt。在 UCRT64 Shell 中分别运行以下三句命令:

$ pacman -S mingw-w64-ucrt-x86_64-gcc ## 安装 gcc
$ pacman -S mingw-w64-ucrt-x86_64-python ## 安装 python
$ pacman -S mingw-w64-ucrt-x86_64-cmake ## 安装 cmake

安装成功后查看三个工具的版本

$ gcc --version
gcc.exe (Rev10, Built by MSYS2 project) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ python --version
Python 3.10.10

$ cmake --version
cmake version 3.26.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).

从版本上可以看到,gcc 版本为 12.2.0(要求 version 9 以上),python 版本为 3.10.10(要求 3.6 以上),cmake 版本为 3.26.0(要求 3.10 以上),均满足了 NS3 的前置条件。

三、下载编译 NS3

这里我下载了最新的 NS-3.38,下载路径为 msys2_install_path\home\user_name。下载完成后即可在 Shell 中看到 ns-3.38 的源存档压缩包,随后解压,进入到源文件夹中,可以看到六个文件。

$ ls
ns-allinone-3.38.tar.bz2
$ tar xjf ns-allinone-3.38.tar.bz2
$ cd ns-allinone-3.38
$ ls
README.md bake build.py constants.py netanim-3.109 ns-3.38 util.py

接下来进行编译。按照 NS3 新手教程给出的操作,利用 build.py 对例程和测试进行编译,编译需要等待很长一段时间。

$ ./build.py --enable-examples --enable-tests

编译完成后即可按照 NS3 新手教程给出的操作进行测试和脚本运行

$ cd ns-3.38
$ ./test.py --no-build
756 of 756 tests passed (756 passed, 0 skipped, 0 failed, 0 crashed, 0 valgrind errors) # 具体数值可能有差别

$ ./ns3 run hello-simulator
Hello Simulator

如果测试和 hello-simulator 例程都没问题,就可以利用 msys2 来运行 NS3 项目了!

参考

  1. ^[1]https://www.nsnam.org/docs/tutorial/html/quick-start.html

路过

雷人

握手

鲜花

鸡蛋
版权声明:免责声明:文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递 更多信息之目的, 并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快处理。
已有 2 人参与

会员评论

相关分类

 万奢网手机版

官网微博:万奢网服务平台

今日头条二维码 1 微信公众号二维码 1 抖音小程序二维码 1
上海万湖珠宝贸易有限公司 地址:上海市宝山区共和新路4727号新陆国际大厦1003-1007室 网站经营许可证 备案号:沪ICP备11005343号-12012-2019
万奢网主要专注于手表回收,二手名表回收/销售业务,可免费鉴定(手表真假),评估手表回收价格,正规手表回收公司,宝山实体店,支持全国范围上门回收手表
返回顶部