NS3学习笔记:安装、ns3-gym、ns3-leo、vscode联调
这个模块是拿来做卫星leo仿真的,还在研究中,版本可能有点限制,论文用的是3.30,目前还只有wscript,所以我用的3.35版本,据说源码还有大坑,唉再看吧。最近实在受不了卡顿的虚拟机了,果断换了双系统,不得不说流畅多了,就是操作指令还不是很适应,因为后面还要用pytorch+NS3联调,所以还是决定用VScode。之前用过一段时间NS3,当时用的虚拟机,安装上VScode就已经很卡了,最后是
一、安装
已经安装过n个版本了。。。
现在除了版本号>=3.36的用cmake代替了waf编译以外,好像没有什么变化
下载具体流程参考以下网址,改改版本号就行,其他都一样,目前我用的是3.35
Ubuntu上安装NS3(最详细的图文介绍)_ubuntu虚拟机安装ns3-CSDN博客
二、安装ns3-gym
直接参考这篇博客就好,非常详细
建议ubuntu用20.04,不然一直会有zmq的版本不匹配问题,很麻烦
在Ubuntu 20.04上安装NS3.34和NS3-gym - Minaduki's Blog
三、安装ns-3-leo
这个模块是拿来做卫星leo仿真的,还在研究中,版本可能有点限制,论文用的是3.30,目前还只有wscript,所以我用的3.35版本,据说源码还有大坑,唉再看吧
从github上可以下载,解压后放到/ns-allinone-3.35/ns-3.35/src
根据wscript(ns3-users论坛上的大佬有提到)要改名为:leo
然后重新configure、build就好
sudo ./waf configure --enable-examples --enable-tests
sudo ./waf build
但是有不少坑
- 可能会报错找不到“ns3/xxxx.h”:最简单粗暴的方法就是去找这个头文件,直接复制到/build/ns3/目录下,多半是编译的时候没有吧这个头文件编译进去,更底层的原因我也不知道了
- 找不到"“epedemic-routing-module.h”:一开始死活找不到这个头文件,后来才看明白“xxx-module.h”就是src下面各个module编译成功形成的头文件,从网上去找了“epedemic-routing”,当做新模块插入就可以啦,注意ns3-store里面也有这个模块,但是用了CMake,幸好从github上面找到了老版本
- leo的examples源码运行的时候会报错,依旧是版本问题,参考这个回答,完美解决NS3版本细节_error: ‘default’ is not a member of ‘ns3::yanswifi-CSDN博客
四、用VScode联合调试
之前用过一段时间NS3,当时用的虚拟机,安装上VScode就已经很卡了,最后是直接用文本编辑器一段段敲的。。。
最近实在受不了卡顿的虚拟机了,果断换了双系统,不得不说流畅多了,就是操作指令还不是很适应,因为后面还要用pytorch+NS3联调,所以还是决定用VScode
- 安装很简单,官网下载deb再安装就行
- 安装好了先把插件弄好,常用的c\c++\python之类的,就选排名最靠前的就行了
- 最后是需要在/ns3-allinone-3.35/ns-3.35/目录下打开vscode,因为我自己还插入了模块,我发现不用sudo模块waf好像都会报错,所以选择切换成root模式打开vscode
- 打开了以后要去修改一些配置文件,都会自动出现在当前文件夹下的.vscode文件夹下,可以参考这两篇文章【ns-3】VS Code开发环境配置_如何用vscode打开ns3-CSDN博客
- C\C++ Edit Configurations:用ctrl+shift+P打开配置,搜索,然后打开json或者ui格式编辑都可以,主要改"includePath",可以实现代码提示,这个看了网上很多教程都没有成功,最后在youtube上找到了教程,这里的路径多加了一条就ok了
- tasks.json:一开始怎么也找不到,网上说是版本问题,现在的vscode应该是隐藏了这些文件,后面是选中了xx.cpp文件,在"终端-配置默认任务”里面选择cpp的那个选项,会自动生成task.json的模版文件,主要修改文件目录和编译命令"command"
- launch,json:这个也是完全找不到,最后是在vscode左边的调试那里新建调试文件才有的,一样是修改"program“的路径
- 最后ctrl+shift+B重新编译运行就可以啦,注意NS3默认运行的目录是在scratch下面,我一般是把代码copy过去,这样也不影响源代码
#1.打开
#普通打开
code .
#管理员模式打开
sudo code --no-sandbox --disable-gpu-sandbox --user-data-dir=/root/.vscode/
#2.修改c_cpp_
"includePath": [
"${workspaceFolder}/build/ns3/**"
"home/zoe/ns-allinone-3.35/ns-3.35/build/"
],
#3.修改task.json
"command":"./waf"
#4.修改launch.json
"programs":"/home/zoe/ns-allinone-3.35/ns-3.35/build/scratch/${fileBasenameNoExtension}"
终于把NS3搞好了,接下来还要coding,继续努力吧,也欢迎大家来和我讨论,每一步的坑要走出来都不容易啊~
更多推荐
所有评论(0)