ns3 配置 Ubuntu × CLion
ns3 配置
网络仿真器配置 Ubuntu × CLion
安装
以下环境为 Ubuntu22.04 LTS,安装版本 ns3.39,部分参照文档
首先保证基础包安装
在 3.36 后,至少要安装以下包:g++、python3、cmake、git、ninja
再下载包并解压
wget http://www.nsnam.org/release/ns-allinone-3.30.tar.bz2
tar xjf ns-allinone-3.30.tar.bz2
编译
进入 ns-3.39
运行以检查依赖
./ns3 configure
检查缺少项,如需要,问 GPT 继续安装依赖。然后回到上层
./build.py
测试
复制 examples/tutorial/first.cc
到 scratch
,运行
./ns3 run scratch/first
编译速度过慢,启用 ccache
./ns3 configure -- -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
编译器设置
好用的东西,CLion 和 VSCode
CLion
在根目录 CMakeLists.txt
添加后头文件目录后,支持最基本的代码编辑功能
include_directories(build/include)
VSCode
不会喵,本来想搞的。所以下面都基于 CLion
新建项目/文件
./ns3
实质是 Python 脚本,拿来打包生成 CMake 的工具
外部工具
在设置中添加外部工具以运行代码,配置如下
- 程序:ns3 位置,
/home/eyderoe/ns3Folder/ns-allinone-3.39/ns-3.39/ns3
- 实参:“run” $FileRelativePath$
- 工作目录:选择程序后应该会自动补全
后面发现没什么必要,因为会自动生成目标
scratch 单文件
scratch
目录比较特殊,是专门设计来进行测试的,CMake 会扫描该目录以生成目标
- 在
scratch
中新建xxx.cc
- 重新载入 CMake 项目,此时会惊奇的发现目标中有
scratch_xxx
,即刚刚新建文件的目标
其他目录项目
不会,但可以偷个懒,复制下 scratch
- 新建目录
xxxx
,并复制scratch/CMakeLists.txt
到新目录下 - 查找 scratch 并替换为 xxxx
- 在根目录下的
CMakeLists.txt
的添加
add_subdirectory(xxxx)
- 重新载入 CMake 项目