之前苦于没有专用的 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 --versiongcc.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 的源存档压缩包,随后解压,进入到源文件夹中,可以看到六个文件。 $ lsns-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 项目了! 参考
|
万奢网手机版
官网微博:万奢网服务平台