考慮到日常使用拳喻,采用虛擬機(jī)virtual box5.1.22+ubuntu16.04.2環(huán)境。安裝過(guò)程網(wǎng)上一大把猪腕,略去不表冗澈。安裝最新版本ns3.26。
1.預(yù)安裝 (安裝庫(kù))
打開(kāi)終端開(kāi)始這關(guān)鍵的第一步吧
- 首先更新源
0 sudo apt-get update
- C++和python安裝陋葡,必裝
1 sudo apt-get install gcc g++ python
2 sudo apt-get install gcc g++ python python-dev - NS3代碼維護(hù)使用的源碼版本控制管理系統(tǒng)
3 sudo apt-get install mercurial - 運(yùn)行python綁定ns-3-dev需要bazaar這個(gè)組件
4 sudo apt-get install bzr - 調(diào)試工具
5 sudo apt-get install gdb valgrind - 支持更多精確WIFI模塊的GNU Scientific Library (GSL)
6 sudo apt-get install gsl-bin libgsl-dev libgsl2 (重要亚亲,網(wǎng)上其他這句話多為錯(cuò)誤) - 仿真必需的詞法分析器和語(yǔ)法分析生成器,必裝
7 sudo apt-get install flex bison libfl-dev - 一些Network Simulation Cradle (nsc) stacks需要gcc-3.4
8 sudo apt-get install g++ gcc //不用執(zhí)行,已經(jīng)是最新版 - 讀取pcap的packet traces捌归,即包嗅探器
9 sudo apt-get install tcpdump - 支持統(tǒng)計(jì)特性的數(shù)據(jù)庫(kù)軟件
10 sudo apt-get install sqlite sqlite3 libsqlite3-dev - xml的配置存儲(chǔ)軟件(requires libxml2 >= version 2.7)
11 sudo apt-get install libxml2 libxml2-dev - 基于GTK的配置系統(tǒng)
12 sudo apt-get install libgtk2.0-0 libgtk2.0-dev - 在虛擬機(jī)and ns-3上測(cè)試
13 sudo apt-get install vtun lxc - 支持utils/check-style.py 代碼風(fēng)格檢查程序
14 sudo apt-get install uncrustify - 文檔生成器颊亮,從源代碼中生成說(shuō)明文檔
15 sudo apt-get install doxygen graphviz imagemagick
16 sudo apt-get install texlive texlive-extra-utils texlive-latex-extra //很大 留到最后吧
17 sudo apt-get install python-sphinx dia - Gustavo’s ns-3-pyviz的可視化軟件
18 sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev - 支持openflow 模塊(requires some boost libraries)
19 sudo apt-get install libboost-signals-dev libboost-filesystem-dev - 支持基于 MPI的分布式仿真
20 sudo apt-get install openmpi*
2.安裝ns3
使用tarball
1 mkdir tarballs
2 cd tarballs
3 wget http://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
4 tar xjf ns-allinone-3.26.tar.bz2
3. 編譯ns3
1 cd ns-allinone-3.26
2 ./build.py (會(huì)很久) //這里報(bào)lte錯(cuò)誤就是內(nèi)存給小了,改大虛擬機(jī)內(nèi)存或者用swap陨溅,我把1g內(nèi)存改為4g就沒(méi)這錯(cuò)誤了。
3 cd ns-3.26
4 ./waf distclean (清除整個(gè)build目錄)
5 ./waf -d optimized configure
6 ./waf -d debug configure
7 ./waf //會(huì)很久
8 ./waf -d debug --enable-sudo configure
9 ./waf configure --enable-tests //使測(cè)試可用
10 ./waf configure --enable-examples //使例子可用
PS:這兩個(gè)很重要绍在,執(zhí)行完后可以看到examples和tests狀態(tài)均為enable
4.測(cè)試
./waf --run hello-simulator
會(huì)輸出hello simulator门扇,則大功告成!
5. 補(bǔ)充
3.編譯ns3中步驟2可能的錯(cuò)誤:
[1462/1770] cxx: src/lte/model/lte-ue-power-control.cc -> build/src/lte/model/lte-ue-power-control.cc.1.o
[1463/1770] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
似乎是g++編譯器自身的問(wèn)題偿渡,解決辦法是利用swap:
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
編譯完成后刪除:
sudo swapoff /swapfile
sudo rm /swapfile
//第五步補(bǔ)充未測(cè)試
參考資料:
http://blog.csdn.net/rical730/article/details/71504169
http://blog.csdn.net/wt_926613/article/details/39645029
http://www.linuxdiyf.com/linux/25505.html
http://blog.csdn.net/rayaohb/article/details/7374615
http://www.cnblogs.com/yibobo-blog/p/4924381.html
http://blog.163.com/yuhao_x10a/blog/static/186823222010101623644687/
http://blog.sina.com.cn/s/blog_b0eecc840102ux8i.html
http://skypacer210.github.io/2014/12/26/building-ns-3-on-ubuntu/