参照了以下两篇文章:
NS3教程(一)-如何创建一个基础网络 详细教程之基础篇 - 知乎 (zhihu.com)
ns-3编译时出现 ./waf 未找到命令的解决办法_找不到./waf命令-CSDN博客
下面是流程复现过程中需要自行摸索补充的点:
- 首先可以熟悉一下Linux下装NS3之后相关的目录结构,上面参照的文章讲的很详细,此处不再赘述;
- 开始搭建一个简单的网络;
(1)如何在/scratch文件夹下创建一个main.cc文件?
touch main.cc
//打开终端输入 touch filename(文件名).cc即可创建文件名为filename的.cc文件;
nano main.cc
//通过 nano 编辑器打开该文件供你编写内容;(Linux新手不推荐使用这个步骤编写.cc文件;
//推荐直接打开创建的.cc文件进行修改
(2) 在我们按照第一篇文章创建.cc文件并将其文章里步骤b的代码复制进.cc文件开始运行时,会发现终端报错;原因是该参照文章使用的是NS3_3.31版本,本文使用的为3.38版本的NS3网络仿真系统,两个版本的操作命令以及文件目录的内容还是有蛮多区别的(编译报错原因是找不到“core-module”文件夹和其他一系列语法错误);
那么我推荐的是直接使用目录下/repos/ns-3-allinone/ns-3.38/src/(某个样例)/examples/(文件名).cc文件进行运行;例如我使用的是aodv.cc进行编译仿真(文件位置参照下图);
具体操作如下:
复制该.cc文件里的代码到/scratch文件夹内自己刚创建的main.cc文件里,如下:
此时我的main.cc打开之后内容如下:
和src文件夹_aodv文件夹_examples文件夹_aodv.cc的内容是一样的;
(3)如何运行该文件?
注意:我们这是3.38版本,命令 ./waf 已不再适用了,使用如下命令:
./ns3 run scratch/main
//注意main.cc的后缀.cc不要加,还有run与旧版本的--run也有区别
//此外,原本./waf命令也改为./ns3
如下是我的操作命令,可以参考一下:
可以看到,成功运行脚本并成功输出:
至此完成了NS3_3.38版本下的文件创建和脚本运行及结果输出。