环境:UBUNTU16.04 64位
工具:NS3最新版NS3.25
步骤:
1. NS3安装预先设置Ubuntu环境
sudo apt-get install gcc g++ Python python-dev
sudo apt-get install mercurial
sudo apt-get install bzr
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
sudo apt-get install flex bison
sudo apt-get install g++-4.4 gcc-4.4 //可以不执行,因首条命令已安装
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-pdf texlive-latex-extra texlive-generic-extra texlive-generic-recommended
sudo apt-get install texinfo dia texlive texlive-pdf texlive-latex-extra texlive-extra-utils texlive-generic-recommended texi2html //可以不执行
sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev
sudo apt-get install qt4-qmake
sudo apt-get install qt4-dev-tools
(1)使用Mercurial:
> cd
> mkdir repos
> cd repos
> hg clone http://code.nsnam.org/ns-3-allinone
(2)直接下载tar压缩包:
> cd
> mkdir tarballs
> cd tarballs
> wget http://www.nsnam.org/release/ns-allinone-3.25.tar.bz2
> tar xvf ns-allinone-3.25.tar.bz2
其实这个不用这么麻烦,直接上ns-3的官网 http://www.nsnam.org/releases /通过浏览器直接下载再解压就是3.编译安装
在终端进入解压缩文件夹ns-allinone-3.25,并执行sudo ./build.py
安装正确打会出现:
'build' finished successfully (9m32.836s)
Modules built:
antenna aodv applications
bridge buildings config-store
core csma csma-layout
dsdv dsr emu
energy fd-net-device flow-monitor
internet lte mesh
mobility mpi netanim (no Python)
network nix-vector-routing olsr
point-to-point point-to-point-layout propagation
spectrum stats tap-bridge
test (no Python) tools topology-read
uan virtual-net-device visualizer
wifi wimax
Modules not built (see ns-3 tutorial for explanation):
brite click openflow
Leaving directory `./ns-3.25'
进入ns-3.25//而非ns-allinone-3.25
sudo ./waf clean
sudo ./waf -d debug --enable-example --enable-tests configure//基于waf的调试编译方式
sudo ./waf
当然也可以不采用上面打waf编译,而直接通过build.py方式(进入解压缩文件夹ns-allinone-3.25):
sudo /build.py --enable-examples --enable-tests
然后在进入ns-3.25
sudo ./test.py –c core
会出现一串PASS...
5.运行小例程
sudo ./waf --run hello-simulator
会打印"hello simulator":
Waf: Leaving directory `/home/yan/NS3/ns-allinone-3.25/ns-3.25/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (2m32.830s)
Hello Simulator
如果没有看到输出“Hello Simulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。可以通过以下命令:
./waf clean
./waf -d debug --enable-examples --enable-tests configure
到现在为止,我们顺利的下载编译了NS3软件包,并通过测试和运行Hello Simulator脚本程序来验证了软件包正确性。
如果想看到仿真界面,可以进行如下步骤:
返回目录ns-allinone-3.16,然后
sudo make clean
sudo qmake NetAnim.pro
sudo make
sudo ./NetAnim
即可打开仿真界面。
运行例子:
进入ns-3.25,把自己写好的脚本复制到ns-3.25/scratch目录下
cp example/tutorial/first.cc scratch/myfirst.cc
./waf
./waf --run scratch/myfirst
问题:
在配置环境时:
sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
在安装时出现:
libgsl0ldbl,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃, 或者只能在其他发布源中找到 然而下列软件包会取代它: libgsl2 libgsl2:i386
的报错,通过www.http://packages.ubuntu.com/网站查询最近几年12.04/14.04/16.04在libgsl0ldbl软件包(GNU科学库的包)情况,发现:所涉及打三个包各版本定义如下:
precise (12.04LTS) (math): GNU Scientific Library (GSL) -- binary package [universe]
1.15+dfsg-1build1: amd64 armhf i386 powerpc
trusty (14.04LTS) (math): GNU Scientific Library (GSL) -- binary package [universe]
1.16+dfsg-1ubuntu1: amd64 arm64 armhf i386 powerpc ppc64el
xenial (16.04LTS) (math): GNU Scientific Library (GSL) -- binary package [universe]
2.1+dfsg-2: amd64 arm64 armhf i386 powerpc ppc64el s390x
yakkety (16.10) (math): GNU Scientific Library (GSL) -- binary package [universe]
2.1+dfsg-2: amd64 arm64 armhf i386 powerpc ppc64el s390x
precise (12.04LTS) (libdevel): GNU Scientific Library (GSL) -- development package
1.15+dfsg-1build1: amd64 armhf i386 powerpc
trusty (14.04LTS) (libdevel): GNU Scientific Library (GSL) -- development package
1.16+dfsg-1ubuntu1: amd64 arm64 armhf i386 powerpc ppc64el
xenial (16.04LTS): Virtual package
provided by: libgsl-dev
yakkety (16.10): Virtual package
provided by: libgsl-dev
precise (12.04LTS) (math): GNU Scientific Library (GSL) -- library package
1.15+dfsg-1build1: amd64 armhf i386 powerpc
trusty (14.04LTS) (math): GNU Scientific Library (GSL) -- library package
1.16+dfsg-1ubuntu1: amd64 arm64 armhf i386 powerpc ppc64el
xenial (16.04LTS) (libs): GNU Scientific Library (GSL) -- library package
2.1+dfsg-2: amd64 arm64 armhf i386 powerpc ppc64el s390x
yakkety (16.10) (libs): GNU Scientific Library (GSL) -- library package
2.1+dfsg-2: amd64 arm64 armhf i386 powerpc ppc64el s390x
实质上就是以往UBUNTU版本里的libgsl0ldbl,故
sudo apt-get install gsl-bin libgsl0-dev libgsl2
即可。