后面进行了 新一轮 的源码安装,写了这个笔记:ubuntu20安装ns3笔记
另外,强推使用bake安装依赖,在上面这个链接中也有教程。
此外,我还进行了mptcp源码的学习,以及在链接中总结了安装源码过程中的报错解决方法,参考链接:ns3学习(三)——MPTCP
下面是我 过去总结 的ns3安装过程。
一、NS3安装
参考这个链接进行了ns3的安装过程
参考链接:NS3详细安装教程
1、ubuntu的一些使用问题
在centos中我们使用yum来进行文件依赖管理,在ubuntu中,我们可以使用apt-get来进行文件依赖管理。
例如:
使用apt-get安装eclipse:
sudo apt-get install eclipse
sudo apt-get install eclipse-ctd
在使用时可能会出现前端锁问题,参考链接:无法获取前端锁dpkg错误解决方法
配置镜像源,强推这个链接:配置镜像源参考链接。链接中使用可视化页面来调整镜像源。都有哪些镜像源呢?下面这个链接中比较全,可以概观地看到:镜像源
2、安装时出现的一些问题
2.1、program ‘hello-simulator’ not found
其中,遇到这个问题:
program ‘hello-simulator’ not found
注意报错信息是找不到文件
在该目录下进行搜索,找到该目录下所有文件。
ls
会发现,并没有hello-simulator.cc这个文件。
sudo的意思是search root来进行以下指令。./waf的意思是指使用waf来运行文件hello-simulator,那么没有这个文件自然就无法运行了。
运行scratch目录下的scratch-simulator(如果scratch-simulator也没有的话,可以执行ls指令来寻找ns-3.27文件夹下的其他文件,运行其他cc文件来验证),来验证ns3安装成功
sudo ./waf --run scratch/scratch-simulator
使用cat指令来查看scratch-simulator.cc文件内容
cat scratch/scratch-simulator.cc
使用
test.py -c core
来测试ns3是否安装好
2.2、Permission denied
出现如下错误:
可以看到错误提示:
permission denied
即:没有权限,输入
sudo test.py -c core
,再次运行即可。
2.3 waf的运行权限问题
在安装其他源码的时候出现这个问题,提示:
sudo:./waf:command not found
执行ls列出文件中的文件,发现waf文件是白色,正常可运行文件应该是绿色,所以想到可能是文件权限不足的问题。
如上图,去查看文件权限:
ls-l
果然,发现waf没有运行权限
添加运行权限:
sudo chmod +x waf
提示:
waf configure first
于是执行
./waf configure
编译成功。
二、NS3编译环境
1、winscp安装
安装winscp:winscp安装
1.1、winscp连接虚拟机
执行ifconfig查看主机ip
可见192.168.187.129即为虚拟机地址。执行
netstat -ntpl
查看22端口是否启动,之后再执行
ifconfig
记得要安装openssh
sudo apt-get install openssh-server
参考链接:WinSCP怎么连接虚拟机
打开22端口
另外还是连不上网,考虑关闭虚拟机防火墙:
sudo systemctl stop ufw.service
1.2、问题1:依赖问题
参考链接:openssh-server安装出现openssh-client依赖问题
2、vs code安装
参考链接:ns3 + VS Code开发环境配置
下载visual studio code
安装之后记得进行重启,重启后,visual studio才能显示在窗口中
3、配置cpp环境
3.1 配置ns3环境
3.2 permission问题
3.3 namespace无法引用ns3问题
打开first.cc发现,included头文件没问题,但是
using namespace ns3
其中ns3标红
按住ctrl点击ns3,走到最里面,发现文件无法被打开。
用控制台打开该文件,发现权限是对root用户只读
这就是报错原因了。对root可读,但是one用户没有权限读。由此说明:include引用头文件的时候,不会检测该文件是否能够打开,只要该文件存在,就不会include爆红。
切换到one用户,并使用linux指令更改权限 (注意文件路径)
chmod 777 ns-3.27/-R
重新打开vscode,不再爆红了,问题解决。下面就可以正式进入ns3的学习了。