1 配置虚拟机
1.1 VMware安装包&Ubuntu的光盘映像文件:
下载链接: 下载Ubuntu光盘映像文件&VMware安装包的网盘链接.
1.2 VMware安装
安装链接: VMware安装的CSDN链接.
1.3 Ubuntu安装
安装链接: Ubuntu 安装的CSDN链接.
2 配置NS3环境
2.1 安装ns3的依赖库
(1)安装Python API 用户的最低要求(3.30 版及更高版本,以及 ns-3-dev):这是从已发布的压缩包中使用 Python 绑定所需的最小包集。C++用户的最低要求(3.36 版和开发):对于 ns-3-dev 和 ns-3.36(及更高版本)版本,还需要 CMake。
sudo apt-get install g++ python3 python3-dev pkg-config sqlite3 cmake
(2)安装NS3代码维护使用的源码版本控制管理系统
sudo apt-get install mercurial
(3)Netanim动画师需要qt5开发工具,对于 Ubuntu 20.10 及更早版本,单个 “qt5-default” 包就足够了。
sudo apt-get install qt5-default
(4)运行python绑定ns-3-dev需要bazaar这个组件。(支持bake构建工具)
sudo apt-get install autoconf cvs bzr unrar
(5)安装调试工具
sudo apt-get install gdb valgrind
(6)支持更多精确WIFI模块的GNU Scientific Library (GSL)
sudo apt-get install gsl-bin libgsl-dev libgslcblas0
(7)仿真必需的词法分析器和语法分析生成器,必装
sudo apt-get install flex bison libfl-dev
(8)一些Network Simulation Cradle (nsc) stacks需要gcc-3.4
sudo apt-get install g++-3.4 gcc-3.4
(9)读取pcap的packet traces,即包嗅探器
sudo apt-get install tcpdump
(10)支持统计特性的数据库软件
sudo apt-get install sqlite sqlite3 libsqlite3-dev
(11)xml的配置存储软件(requires libxml2 >= version 2.7)
sudo apt-get install libxml2 libxml2-dev
(12)基于GTK的配置系统
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install libgtk-3-dev
(13)在虚拟机and ns-3上测试
sudo apt-get install vtun lxc uml-utilities
(14)支持utils/check-style.py 代码风格检查程序
sudo apt-get install uncrustify
(15)文档生成器,从源代码中生成说明文档
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
(16)The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:
sudo apt-get install python3-sphinx dia
(17)Gustavo’s ns-3-pyviz的可视化软件
sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
(18)支持openflow 模块(requires some boost libraries)
sudo apt-get install libxml2 libxml2-dev libboost-all-dev
(19)支持基于 MPI的分布式仿真
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
2.2 安装ns3的基础模块(Ns3_3.36的安装)
首先,ns3 在3.36版本取消了 waf.py 编译器,使用了 ns3.py 来替代,因此ns3-3.36版本的安装步骤中的一些命令,较之前版本有较大的差异。
从官网下载选择ns3-3.36版本进行下载:官方下载地址
mkdir tarballs # 在目录下创建新的文件夹tarballs
cd tarballs # 进入tarballs
# 我们将下载的ns3压缩文件放到tarballs文件夹中,并解压缩
cd ns-allinone-3.36/ns-3.36 # 3.36版本
./ns3 configure --enable-examples --enable-tests # 配置文件
./ns3 build # 编译ns3
./test.py # 测试
现在就说明安装都成功了,并且所有的单元都是完整的!
./ns3 run first # 运行第一个脚本
./ns3 run 'first --PrintHelp'
# 进入超级用户之后无法运行脚本(Refuse to run as root)
2.3 NetAnim安装与启动
返回目录ns-allinone-3.36,进入目录netanim-3.108,执行下列命令编译安装
sudo make clean
sudo qmake NetAnim.pro # NetAnim的编译安装
sudo make
cd ..
cd ./netanim-3.108
sudo ./NetAnim # 启动NetAnim
打开如下仿真界面:
如果拥有jetbrains账号,可以使用 Clion(类似于Pycharm) 替代Eclipse。
如选择使用Clion作为编辑器编写ns3的代码,则直接跳看第5部分。
3 配置Eclipse
3.1 安装JDK
JDK的tar包下载传送门
下载之后,在当前目录解压(以jdk1.8.0_333为例)。
sudo mkdir /usr/lib/jvm # 在/usr/lib/jvm目录下新建目录
sudo mv jdk1.8.0_333 /usr/lib/jvm # 将解压的文件移动到我们的新建目录下
sudo gedit /etc/profile # 打开profile文件,并执行如下操作
在profile文件的结尾加上最后四行(第28行的 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_333 是依据自己的目录下的JDk版本):
source ~/.bashrc # 让环境生效
echo $JAVA_HOME # 判断JDK是否生效
java -version # 查看java是否安装成功
3.2 安装eclipse
下载eclipse安装包: Eclipse下载链接
版本选择:Eclipse IDE for C/C++ Developers,Linux x86_64(基于自身需求,C/C++适合这个)。下载不要直接点download,先选择换一个镜像(>> Select Another Mirror),选择中国内陆的任意一个地址去下载会快一些。
mkdir /opt # 新建目录,并把我们下载的tar包解压出的eclipse文件夹放到新建目录
sudo gedit /usr/share/applications/eclipse.desktop # 打开eclipse.desktop文件添加以下内容
打开eclipse.desktop文件添加以下内容:
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
root权限下输入以下指令赋予图标可执行权限:
sudo chmod u+x /usr/share/applications/eclipse.desktop
(1)在显示应用程序那里可以找到eclipse的图标,并可以打开:
(2)双击图标可以打开Eclipse界面:
4 在Eclipse中编译ns3(3.36版本)
4.1 创建ns3工程
4.1.1 新建ns3空工程
File —> new —> C/C++ project
4.1.2 选择C++ Managed Build
4.1.3 按照如下图创建empty工程“ns3_3.36”(名称按自己版本而定)
参考书上是使用在默认位置,勾选 “ Use default location ” ,创建的C++工程,然后移动我们安装好的NS3,会出现 CMake Error 问题(尽量不要移动或改变配置好的NS3的目录)。
所以:我们取消 “ Use default location ” 的勾选,选择如图 /home/wqf/tarballs/ns-allinone-3.36 目录下的ns-3.36作为 project 创建位置,此时 project name 根据喜好设置(如图是:ns3_3.36)。
4.2 设置eclipse中ns-3编译器
在 Project Explorer 中选中ns3上单击右键,选择properties,得到的界面如下,按照界面上所示配置如下:
4.2.1 Build Setting选项卡
# 所用到的命令
# 如果是3.36版本,则输入如下
${workspace_loc:/ns3_3.36/ns3}
${workspace_loc:/ns3_3.36/build}
以3.36为例如图:
4.2.2 Behaviour选项卡
配置完毕点击点击Apply and Close,则开始编译。
4.3 设置eclipse执行程序使用外部工具
4.3.1 选择Run—>External Tools—>External tools Configurations
4.3.2 之后在Program中右键选择New,按下图配置信息,并单机 " Run "
# 3.36版本所用到的命令(方便复制)
${workspace_loc:/ns3_3.36/ns3}
${workspace_loc:/ns3_3.36}
run "${string_prompt}"
4.4 程序运行
先选择Run—>External Tools—>ns3-waf,即我们刚刚设置的eclipse外部工具。
然后就会出现一个 “ Variable Input ” 的输入框。
4.4.1 ns3_3.36运行程序 first.cc
在3.36版本中,无需再将所要运行的程序放到scratch文件夹中,直接可以搜索到要运行的文件名称所在位置的文件。
因此我们在 Variable Input 的输入框中输入first(省略后缀.cc)选择" OK ",则完成仿真。
至此,我们成功配置了在eclipse中编译ns-3,于是可以告别Linux里不太熟悉的开发环境,享有eclipse一切方便工具!
4.5 补充:NS3添加模块
在上述都安装完成之后,我们如果写了一个新的模块。
(1)首先复制粘贴在 ./ns3_3.36/src 目录下。
(2)通过命令 ./ns3 configure --enable-examples --enable-tests 再次配置一下,待完成后,即可再次运行 ./ns3_3.36/src/modulename/examples 下的程序。
(3)可以直接在上方工具栏选择我们的外部工具进行运行,位置如图。(Eclipse)
5 配置Clion编写ns3代码
在官网下载安装好Clion之后,在左上角打开project,找到目录 /home/wqf/tarballs/ns-allinone-3.36 下的ns-3.36并打开。
按照界面上所示配置如下:
5.1 Toolchains配置
5.2 CMake配置
其中,“CMake options” 栏的配置如下方所示。
-DNS3_EXAMPLES=ON
-DNS3_TESTS=ON
-DNS3_WARNINGS_AS_ERRORS=ON
-DNS3_NATIVE_OPTIMIZATIONS=OFF
-DNS3_PYTHON_BINDINGS=ON
-DNS3_ASSERT=ON
-DNS3_LOG=ON
与此同时,我们需要设置一下环境变量,否则我们的CMake找不到pybindgen,就会出现问题。
我们配置如下:文章来源:https://www.toymoban.com/news/detail-762444.html
其中,Name和Value分别如下:文章来源地址https://www.toymoban.com/news/detail-762444.html
PYTHONPATH
/home/wqf/tarballs/ns-allinone-3.36:/home/wqf/tarballs/ns-allinone-3.36/pybindgen-0.22.1
到了这里,关于Ubuntu20.04安装NS3的3.36版本(最新版本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!