NS3 入门环境搭建(VM虚拟机+Ubuntu,常见错误解析)

NS3 入门环境搭建3.30版本

环境:VMware + Ubuntu 20.04 

首先确保系统已经安装了vim
没有的话请先安装。命令如下:

sudo apt-get install vim-gtk

环境搭建

1.添加源

sudo vim /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ trusty main
 universe restricted multiverse
sudo apt-get update

2.编写脚本安装依赖包

首先使用vim建立个脚本文件

vim pre.sh

在里面输入以下命令,可以直接复制粘贴。不行的话请看我博客里的Ubuntu配置优化。

#!/bin/sh
sudo apt-get install gcc g++ python python3 -y
sudo apt-get install gcc g++ python python3 python3-dev -y
sudo apt-get install python3-setuptools git mercurial -y
sudo apt-get install qt5-default mercurial -y
sudo apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3 -y
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev -y
sudo apt-get install autoconf cvs bzr unrar -y
sudo apt-get install gdb valgrind -y
sudo apt-get install uncrustify -y
sudo apt-get install doxygen graphviz imagemagick -y
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk -y
sudo apt-get install python3-sphinx dia -y
sudo apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0 -y
sudo apt-get install tcpdump -y
sudo apt-get install sqlite sqlite3 libsqlite3-dev -y
sudo apt-get install libxml2 libxml2-dev -y
sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake -y
sudo apt-get install python-pip -y
pip install cxxfilt -y
sudo apt-get install libgtk2.0-0 libgtk2.0-dev -y
sudo apt-get install vtun lxc -y
sudo apt-get install libboost-signals-dev libboost-filesystem-dev -y
sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 gir1.2-goocanvas-2.0 python-rsvg -y

保存脚本退出,获取root权限

sudo su
chmod +x pre.sh
./pre.sh

3、下载ns3源码,解压

wget http://www.nsnam.org/release/ns-allinone-3.30.tar.bz2
tar xjf ns-allinone-3.30.tar.bz2

此处可以换为3.27版本

4、配置

cd ns-allinone-3.30/ns3.30
./waf configure --build-profile=debug --enable-examples --enable-tests

此处可以换为3.27版本

5、编译

./waf

6、测试

./test.py -c core

输出以下信息,则成功
在这里插入图片描述

7、运行

我们通常使用waf运行脚本程序。在正确编译了NS3软件包之后,如果要运行一个程序,只需在waf后加入–run选项即可。让我们在ns-3环境下运行常见的HelloSimulator程序,该程序就相当于学习一门语言时的Hello World程序:

./waf --run hello-simulator

Waf会首先检查程序正确编译了,而且还可以根据需要重新执行编译。Waf执行了此程序,并输出如下信息:
在这里插入图片描述

如果没有看到输出“HelloSimulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。可以通过以下命令:

./waf clean
./waf -d debug --enable-examples --enable-tests configure

在调试编译模式下进行重新编译。
到现在为止,我们顺利的下载编译了NS3软件包,并通过测试和运行HelloSimulator脚本程序来验证了软件包正确性。

8.问题总结:

编译时出现如图错误:
在这里插入图片描述
原因:这个问题时内存不足造成的!!!
解决方法:关闭虚拟机,在虚拟机“配置”将内存从2048MB修改为4096MB,再打开虚拟机,然后再重新编译,成功。如果还是失败,继续加大内存!!注意电脑上别开太多软件!

2)gcc版本问题:NSC(Network Simulator Cradle)需要工作在在gcc-3.4或gcc-4.2及以上版本。避免使用gcc-4.0和gcc-4.1系列。在官方教程上有特别提到。

原文地址:https://www.cnblogs.com/hzcya1995/p/13308070.html