ns-3 MacOS Install¶
之前在ch0提到的ns-3的安装,利用的是在macOS上的OrbStack运行,这次我们直接利用macOS本机进行操作。
起因¶
我在做 Unison 的实验,在OrbStack上可以运行(毕竟之前配好了环境),但是虚拟机的资源有限,我还是想在本机直接运行。
当我config时:
C | |
---|---|
1 |
|
得到结果:
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
很显然,这就是CMake的锅了啊!
Text Only | |
---|---|
1 2 |
|
分析原因¶
其实这就是cmake版本不对的原因,重装一下就可以了。
我目前这个实验的ns3 version是3.42,它需要的Prerequisites是:
- C++ compiler (g++ or clang++), Python (version 3.8 or above), CMake and a build-system (e.g. make, ninja, Xcode).
- For macOS, use clang++ (available in Xcode or Xcode Command Line Tools).
我现在的CMake版本:
Bash | |
---|---|
1 2 3 4 |
|
按常理版本够了,为什么还会出问题呢?
原因是:ns-3需要的是cmake的稳定版本,而不是预发行版本(rc)。
修复过程¶
- 首先卸载现有版本
Bash 1 2
sudo find /usr/local/bin -type l -lname '/Applications/CMake.app/*' -delete sudo rm -rf /Applications/CMake.app
- 下载并安装稳定版
Bash 1 2 3 4 5 6 7 8 9
mkdir ~/Downloads/CMake curl --silent --location --retry 3 "https://github.com/Kitware/CMake/releases/download/v3.30.4/cmake-3.30.4-macos-universal.dmg" --output ~/Downloads/CMake/cmake-macos.dmg hdiutil attach -quiet -mountpoint /Volumes/cmake-macos ~/Downloads/CMake/cmake-macos.dmg cp -R /Volumes/cmake-macos/CMake.app /Applications/ hdiutil detach /Volumes/cmake-macos sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/usr/local/bin
- 验证安装
Bash 1
cmake --version
- 重新进行任务配置
Bash 1 2 3
cd ~/paper/UNISON-for-ns-3 rm -rf cmake-cache ./ns3 configure --enable-mtp --enable-examples
CMake Version
CMake的版本类型分为两种主要类型:
稳定版本
- 格式为:
<major>.<minor>.<patch>
- patch号小于20000000
- 这是经过完整测试的正式发布版本
- 适合在生产环境中使用
预发行版本
- 格式为:
<major>.<minor>.<patch>-rc<n>
- 例如:3.28.0-rc5
- 这是正式版本发布前的测试版本
- 可能包含未完全测试的新功能
- 主要用于测试目的,不建议在生产环境使用
版本号说明
- major:主版本号
- minor:次版本号
- patch:补丁版本号
- rc:Release Candidate(发布候选版本)的缩写,后面的数字表示第几个候选版本
稳定版本经过完整测试,功能完备且bug较少,而预发行版本主要用于测试新功能,可能存在未知问题。
很显然了,ns-3需要CMake提供的是稳定版本