首先准备两三个小时以上的时间
安装Ubuntu
- L i n u x 安 装 自 行 解 决 Linux安装自行解决 Linux安装自行解决
- 本 人 环 境 : U b u n t u 版 本 18.04 , 建 议 4 G 以 上 空 间 本人环境:Ubuntu版本18.04,建议4G以上空间 本人环境:Ubuntu版本18.04,建议4G以上空间
- 注 意 , V M w a r e 版 本 不 要 15.5.5 版 本 , 原 因 如 下 : 注意,VMware版本不要15.5.5版本,原因如下: 注意,VMware版本不要15.5.5版本,原因如下:键盘大小写失灵 , 往 前 早 一 个 版 本 即 可 ,往前早一个版本即可 ,往前早一个版本即可
安装所需依赖
- C++和python安装,必装
sudo apt-get install gcc g++ python
sudo apt-get install gcc g++ python python-dev- NS3代码维护使用的源码版本控制管理系统
sudo apt-get install mercurial- 运行python绑定ns-3-dev需要bazaar这个组件
sudo apt-get install bzr- 调试工具
sudo apt-get install gdb valgrind- 支持更多精确WIFI模块的GNU Scientific Library (GSL) 【网上大部分这里都是错误的,最新版的是没有libgsl0ldbl的,取而代之的有:libgsl23 libgslcblas0:i386 libgsl23:i386 libgslcblas0。我们选择libgslcblas0安装即可】
sudo apt-get install gsl-bin libgsl-dev libgslcblas0- 仿真必需的词法分析器和语法分析生成器,必装
sudo apt-get install flex bison libfl-dev- 一些Network Simulation Cradle (nsc) stacks需要gcc-3.4
sudo apt-get install g++-3.4 gcc-3.4- 读取pcap的packet traces,即包嗅探器
sudo apt-get install tcpdump- 支持统计特性的数据库软件
sudo apt-get install sqlite sqlite3 libsqlite3-dev- xml的配置存储软件(requires libxml2 >= version 2.7)
sudo apt-get install libxml2 libxml2-dev- 基于GTK的配置系统
sudo apt-get install libgtk2.0-0 libgtk2.0-dev- 在虚拟机and ns-3上测试
sudo apt-get install vtun lxc- 支持utils/check-style.py 代码风格检查程序
sudo apt-get install uncrustify- 文档生成器,从源代码中生成说明文档(很大,我没有装)
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra- 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 python-sphinx dia- Note: Sphinx version >= 1.12 required for ns-3.15. To check your version, type “sphinx-build”. To fetch this package alone, outside of the Ubuntu package system, try
sudo easy_install -U Sphinx- Gustavo’s ns-3-pyviz的可视化软件(没装)
sudo apt-get install python-pygraphviz python-kiwi python- - pygoocanvas libgoocanvas-dev- 支持openflow 模块(requires some boost libraries)
sudo apt-get install libboost-signals-dev libboost-filesystem-dev- 支持基于 MPI的分布式仿真(没装)
sudo apt-get install openmpi*
下载NS3
- 访 问 官 网 : 访问官网: 访问官网:官网3.30版本链接
-
点
击
下
载
链
接
点击下载链接
点击下载链接
-
下
载
成
功
后
,
找
到
t
a
r
文
件
下载成功后,找到tar文件
下载成功后,找到tar文件
- 复 制 文 件 , 回 到 主 目 录 , 创 建 文 件 夹 ( 不 是 必 须 , 方 便 管 理 ) 复制文件,回到主目录,创建文件夹(不是必须 ,方便管理) 复制文件,回到主目录,创建文件夹(不是必须,方便管理)
- 进 入 文 件 夹 , 粘 贴 t a r 文 件 进入文件夹,粘贴tar文件 进入文件夹,粘贴tar文件
安装NS3
-
打 开 终 端 ( a t r l + a l t + t ) , 输 入 命 令 打开终端(atrl+alt+t),输入命令 打开终端(atrl+alt+t),输入命令
cd tarballs/
-
解 压 t a r 文 件 解压tar文件 解压tar文件
tar xjf ns-allinone-3.30.1.tar.bz2
-
解 压 之 后 , 输 入 解压之后,输入 解压之后,输入
ls
可 以 查 看 当 前 目 录 下 文 件 可以查看当前目录下文件 可以查看当前目录下文件 -
cd ns-allinone-3.30.1/
, 进 入 目 录 ,进入目录 ,进入目录./build.py (会很久)
P S : 使 用 命 令 s u d o . / b u i l d . p y 编 译 安 装 n s − 3 安 装 包 一 般 是 我 们 第 一 次 安 装 n s − 3 的 时 候 使 用 的 命 令 , 这 是 a l l i n o n e 环 境 下 的 的 b u i l d . p y 脚 本 , 是 一 个 P y t h o n 脚 本 。 PS:使用命令sudo ./build.py编译安装ns-3安装包一般是我们第一次安装ns-3的时候使用的命令,这是allinone环境下的的build.py脚本,是一个Python脚本。 PS:使用命令sudo./build.py编译安装ns−3安装包一般是我们第一次安装ns−3的时候使用的命令,这是allinone环境下的的build.py脚本,是一个Python脚本。
一 旦 我 们 第 一 次 编 译 过 后 , 我 们 之 后 就 要 使 用 w a f 编 译 。 一旦我们第一次编译过后,我们之后就要使用waf编译。 一旦我们第一次编译过后,我们之后就要使用waf编译。 -
b u i l d 之 后 出 现 这 样 就 算 没 问 题 了 : build之后出现这样就算没问题了: build之后出现这样就算没问题了:
其 中 下 面 四 个 是 没 有 b u i l d 的 , 可 选 项 , 暂 时 不 用 其中下面四个是没有build的,可选项,暂时不用 其中下面四个是没有build的,可选项,暂时不用 -
进 入 n s − 3.30.1 文 件 夹 进入 ns-3.30.1 文件夹 进入ns−3.30.1文件夹
cd ns-3.30.1/ ./waf distclean (清除整个build目录) ./waf configure --enable-examples --enable-tests (开启例子及帮助)# 这一行命令是为了配置NS3。命令中的点号代表当前目录,当前命令下的waf文件,waf文件是一个python。是NS3自带的。通过上面的命令,使用当面目录下的waf文件配置NS3,并使得编译版本为debug模式,同时使得实例代码和测试代码可用。 ./waf (会很久、更久、超级久) # 久哭了QAQ
-
结 束 之 后 大 体 上 和 之 前 b u i l d 的 结 果 是 一 样 的 结束之后大体上和之前build的结果是一样的 结束之后大体上和之前build的结果是一样的
-
可 以 通 过 运 行 以 下 脚 本 来 运 行 N S − 3 发 行 版 的 单 元 测 试 可以通过运行以下脚本来运行NS-3发行版 的单元测试 可以通过运行以下脚本来运行NS−3发行版的单元测试
./test.py
【 p s : 执 行 之 后 去 看 个 电 影 吧 , 不 要 问 我 为 什 么 Q _ Q 】 【ps:执行之后去看个电影吧,不要问我为什么Q\_Q】 【ps:执行之后去看个电影吧,不要问我为什么Q_Q】
结 束 之 后 应 该 是 这 个 样 子 : 结束之后应该是这个样子: 结束之后应该是这个样子:
-
现 在 就 说 明 安 装 都 成 功 了 , 并 且 所 有 的 单 元 都 是 完 整 的 。 现在就说明安装都成功了,并且所有的单元都是完整的。 现在就说明安装都成功了,并且所有的单元都是完整的。
-
w a f 命 令 是 交 互 式 的 , 是 基 于 p y t h o n 语 言 的 开 源 编 译 系 统 。 waf命令是交互式的,是基于python语言的开源编译系统。 waf命令是交互式的,是基于python语言的开源编译系统。
一 旦 我 们 用 s u d o . / b u i l d . p y 命 令 编 译 安 装 过 N S − 3 , 再 想 重 新 配 置 和 编 译 就 只 能 用 w a f 命 令 。 一旦我们用sudo ./build.py命令编译安装过NS-3,再想重新配置和编译就只能用waf命令。 一旦我们用sudo./build.py命令编译安装过NS−3,再想重新配置和编译就只能用waf命令。
需 要 注 意 的 是 w a f 命 令 配 置 时 是 在 目 录 n s − 3.30 下 需要注意的是waf命令配置时是在目录ns-3.30下 需要注意的是waf命令配置时是在目录ns−3.30下
运行脚本
-
通 常 在 W a f 的 控 制 下 运 行 脚 本 。 通常在Waf的控制下运行脚本。 通常在Waf的控制下运行脚本。
这 使 构 建 系 统 可 以 确 保 正 确 设 置 共 享 库 路 径 , 并 确 保 库 在 运 行 时 可 用 。 这使构建系统可以确保正确设置共享库路径,并确保库在运行时可用。 这使构建系统可以确保正确设置共享库路径,并确保库在运行时可用。 -
要 运 行 程 序 , 只 需 使 用 要运行程序,只需使用 要运行程序,只需使用 –runWaf 中 的 选 项 。 通 过 键 入 以 下 内 容 , 让 我 们 运 行 无 所 不 在 的 h e l l o w o r l d 程 序 中的 选项。通过键入以下内容,让我们运行无所不在的hello world程序 中的选项。通过键入以下内容,让我们运行无所不在的helloworld程序
./waf --run hello-simulator
如 果 是 这 个 样 子 就 木 的 问 题 了 : 如果是这个样子就木的问题了: 如果是这个样子就木的问题了:
-
如果看不到输出怎么办?
-
看
到
W
a
f
消
息
指
示
构
建
已
成
功
完
成
,
但
没
有
看
到
“
H
e
l
l
o
S
i
m
u
l
a
t
o
r
”
输
出
,
看到Waf消息指示构建已成功完成,但没有看到“ Hello Simulator”输出,
看到Waf消息指示构建已成功完成,但没有看到“HelloSimulator”输出,
则 可 能 是 在 “ 使 用 W a f 构 建 ” 部 分 中 将 构 建 模 式 切 换 为 则可能是在“ 使用Waf构建”部分中将构建模式切换为 则可能是在“使用Waf构建”部分中将构建模式切换为optimized
, 但 是 错 过 了 更 改 回 d e b u g m o d e 的 操 作 。 ,但是错过了更改回 debug\ mode的操作。 ,但是错过了更改回debug mode的操作。 - 本 次 使 用 的 所 有 控 制 台 输 出 都 使 用 特 殊 的 n s − 3 日 志 记 录 组 件 , 该 组 件 对 于 将 用 户 消 息 打 印 到 控 制 台 非 常 有 用 。 本次使用的所有控制台输出都使用特殊的ns-3日志记录组件,该组件对于将用户消息打印到控制台非常有用。 本次使用的所有控制台输出都使用特殊的ns−3日志记录组件,该组件对于将用户消息打印到控制台非常有用。
- 编 译 优 化 代 码 时 , 将 自 动 禁 用 此 组 件 的 输 出 − 它 被 “ o p t i m i z e d o u t ” 。 如 果 看 不 到 “ H e l l o S i m u l a t o r ” 输 出 , 请 键 入 以 下 内 容 : 编译优化代码时,将自动禁用此组件的输出-它被“optimized out”。如果看不到“ Hello Simulator”输出,请键入以下内容: 编译优化代码时,将自动禁用此组件的输出−它被“optimizedout”。如果看不到“HelloSimulator”输出,请键入以下内容:
./waf configure --build-profile=debug --enable-examples --enable-tests
-
看
到
W
a
f
消
息
指
示
构
建
已
成
功
完
成
,
但
没
有
看
到
“
H
e
l
l
o
S
i
m
u
l
a
t
o
r
”
输
出
,
看到Waf消息指示构建已成功完成,但没有看到“ Hello Simulator”输出,
看到Waf消息指示构建已成功完成,但没有看到“HelloSimulator”输出,
-
没 输 出 “ H e l l o S i m u l a t o r ” , 说 明 你 是 在 优 化 编 译 模 式 下 进 行 的 编 译 , 在 优 化 编 译 模 式 下 , 默 认 将 关 闭 控 制 台 输 出 。 没输出“Hello Simulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。 没输出“HelloSimulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。
-
可 以 通 过 以 下 改 变 命 令 可以通过以下改变命令 可以通过以下改变命令
sudo ./waf -d optimized --enable-example --enable-tests configure
的 参 数 的参数 的参数optimized
改 为 改为 改为debug
后 变 为 后变为 后变为sudo ./waf -d debug --enable-example --enable-tests configure
重 新 配 置 编 译 就 可 以 。 重新配置编译就可以。 重新配置编译就可以。 -
具 体 指 令 是 : 具体指令是: 具体指令是:
cd ns-3.30 ./waf clean //清除先前的配置编译 ./waf -d debug --enable-example --enable-tests configure //基于waf的配置调试方式 ./waf
-
以 上 两 种 方 式 都 可 以上两种方式都可 以上两种方式都可
更多推荐
NS3教程(下载、安装、测试)
发布评论