從0開始搭建ns3環境以及NetAnim簡單使用

一、環境準備

ns3是基于GNU/Linux平臺使用C++開發的工具軟件,在windows系統中安裝使用ns3環境,可以使用虛擬機VMware并安裝ubuntu系統來實現,現將本教程所用到的虛擬機和系統鏡像放到網盤提供下載

名稱鏈接提取碼
VMware Workstation 17 Prohttps://pan.baidu.com/s/1IEPZdvGGUYJ4-oHW5AHaKwm3gm
ubuntu-18.04.6-desktop-amd64https://pan.baidu.com/s/1UEueh6bXdQ9LXRTZdMEEBAaopg

虛擬機以及Ubuntu系統安裝過程請參考以下文章:

https://blog.csdn.net/u014151564/article/details/132279564

進入系統后,先將系統的源改為清華源或者是阿里,方便后續下載各種依賴

Ubuntu系統菜單→軟件和更新→下載自

在這里插入圖片描述

二、安裝依賴

在Ubuntu系統桌面右鍵,選擇打開終端

1、更新源

sudo apt-get update

2、安裝軟件包

  • 注意:下面的指令有兩種方式來執行,軟件包安裝需要花大量的時間,你可以一條一條的在終端中執行,或者是將安裝命令寫入shell腳本,并加入自動確認參數(-y),然后執行腳本文件,不用一直守在那里
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 libgsl-dev libgsl23
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++-3.4 gcc-3.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-extra-utils texlive-latex-extra
sudo apt-get install python-sphinx dia
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
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi*

三、安裝ns3

NS3可通過Tarballs和Bake兩種方式進行安裝,以下將以Tarballs為例:創建Tarballs目錄、進入目錄、下載壓縮包、解壓

有關ubuntu下常見軟件安裝方法可參考文章:https://blog.csdn.net/java211/article/details/3044103

在Ubuntu桌面右鍵打開終端,然后按順序執行以下指令

1、創建Tarballs目錄
mkdir tarballs2、進入目錄
cd tarballs3、下載壓縮包
wget http://www.nsnam.org/release/ns-allinone-3.28.tar.bz24、解壓
tar xjf ns-allinone-3.28.tar.bz2

四、編譯ns3

安裝完成后,在系統的主文件夾里會有剛才創建的名為tarballs的文件夾,我們的ns3就是安裝在這里面,進入到解壓后的ns3主文件夾,我們來到這里是因為需要使用build.py來編譯ns3
在這里插入圖片描述
在空白處右鍵,打開終端,然后執行以下命令

./build.py 

編譯成功后會顯示如下,這里耗費的時間會長一點,感覺時間長的話不用擔心是不是出了問題
在這里插入圖片描述
編譯完成后我們再使用waf重新配置和編譯ns3系統,雖然這不是必須的,但是一旦工程已經編譯過,就不能再使用build.py腳本了,這時如果想改變原有ns3的配置就需要使用交互式waf命令進行重新配置和編譯,步驟如下

1、進入到ns-3.28文件夾
cd ns-3.282、清除先前配置編譯
./waf distclean3、重新配置ns3,優化編譯包括例子和測試(默認的例子和測試是不編譯的),然后系統會重新配置,編譯系統會檢查ns3以來的軟件包是否安裝
./waf configure --build-profile=debug --enable-examples --enable-tests4、以上僅是配置ns3,正式編譯使用下面的命令
./waf build

至此,ns3編譯完成,接下來進行測試

五、測試

還是在ns-3.28這個文件夾下打開終端(或者從終端使用cd指令直接進入)
執行如下指令

test.py是Python編寫的測試腳本,下面的命令是測試ns3是否編譯正確的典型方法
測試結果最后一行現實的是總共測試和通過測試的腳本數目

./test.py -c core

在這里插入圖片描述

六、運行腳本測試

下面通過運行ns3提供的示例,再次驗證ns3是否正常安裝,首先執行如下命令

./waf --run hello-simulator

顯示如下則測試通過
在這里插入圖片描述
至此,ns3環境安裝成功,后續會更新Netanim的簡單使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37706.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37706.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡約時尚的健康手表,智能守護每一刻,dido Y60上手

智能手表是現在很流行的一種智能設備,很多品牌都推出了各種各樣的產品,但是大部分都更側重功能和運動的方面,健康監測往往只是配角,而隨著人們對自己的健康越來越重視,有些朋友只是單純的需要一塊專業的健康監測手表。…

選擇任務管理軟件:哪個更適合你的需求?

隨著互聯網的發展,知識管理是可以成為企業獲得更大發展前景的神兵利器,任務協同,是服務于中小型團隊,或者大型機構的終端組織。來看看這款國外流行的任務管理軟件Zoho Projects。 任務管理是企業協同的重要組成部分。 任務管理是企…

Bitcoin 加速交易操作示例

這里以 Bitcoin Ordinals NFT 為例, 進行加速交易演示 第1步:新建子賬戶 溫馨提示:如果有多條魚未確認,也只需1個賬戶即可,不必搞多個子賬戶 第2步:切換回到老地址(Account 1) 第3步…

【Kubernetes】Kubernetes的PV和PVC的用法

PV、PVC 前言一、 存儲卷1. emptyDir 存儲卷1.1 概念1.2 實例 2. hostPath 存儲卷2.1 概念2.2 實例 3. nfs共享存儲卷 二、PV 和 PVC1. 概念1.1 PV1.2 PVC1.3 PVC 的使用邏輯1.4 創建機制1.5 PV 和 PVC 的生命力周期1.6 創建及銷毀 PV 的流程 2. PV 和 PVC 的創建2.1 查看定義2…

高并發內存池項目(C++實戰項目)

項目介紹 項目來源 本項目實現了一個高并發內存池,參考了Google的開源項目tcmalloc實現的簡易版;其功能就是實現高效的多線程內存管理。由功能可知,高并發指的是高效的多線程,而內存池則是實現內存管理的。 tcmalloc源碼 項目…

論智能與反智能的對立統一

智能和反智能可以被視為一個相對的概念,彼此存在一定的關聯和互補。在發展智能和反智能技術的過程中,我們必須始終牢記倫理和法律的原則,在合法和道德的框架內進行研究和應用,遵守相關的規定和限制。只有在這樣的前提下&#xff0…

linux的shell中 if 的運算符的使用

一、文件比較運算符 e filename 如果 filename存在,則為真 如: [ -e /var/log/syslog ]-d filename 如果 filename為目錄,則為真 如: [ -d /tmp/mydir ]-f filename 如果 filename為常規文件,則為真 如: […

基于vue開發的影視站模板(模仿西瓜視頻)

基于vue3開發的影視站模板, 對接蘋果cms10數據庫表, 采用pythondjangovue開發 效果預覽 http://101.43.124.118:8002 源碼地址 https://github.com/geeeeeeeek/appvideo 運行步驟 1.安裝依賴 npm install 2.運行 npm run dev 代碼說明 入口文件為main.js 接口請求的bas…

【計算機網絡】概述及數據鏈路層

每一層只依賴于下一層所提供的服務,使得各層之間相互獨立、靈活性好,已于實現和維護,并能促進標準化工作。 應用層:通過應用進程間的交互完成特定的網絡應用,HTTP、FTP、DNS,應用層交互的數據單元被稱為報…

MySQL 中常見的幾種高可用架構部署方案

MySQL 中的集群部署方案 前言 這里來聊聊,MySQL 中常用的部署方案。 MySQL Replication MySQL Replication 是官方提供的主從同步方案,用于將一個 MySQL 的實例同步到另一個實例中。Replication 為保證數據安全做了重要的保證,是目前運用…

數據結構初階--二叉樹的鏈式結構

目錄 一.二叉樹鏈式結構的概念 二.二叉樹鏈式結構的功能實現 2.1.鏈式二叉樹的定義 2.2.鏈式二叉樹的構建 2.3.鏈式二叉樹的遍歷 2.3.1.先序遍歷 2.3.2.中序遍歷 2.3.3.后序遍歷 2.3.4.層序遍歷 2.4.鏈式二叉樹的求二叉樹的結點數量 法一:計數法 法二&a…

Linux知識點 -- 進程概念(補充)

Linux知識點 – 進程概念(補充) 文章目錄 Linux知識點 -- 進程概念(補充)一、進程地址空間的堆區二、虛擬地址到物理地址之間的轉化三、虛擬地址到物理地址之間的映射 一、進程地址空間的堆區 在用戶每次使用malloc等函數在進程的…

OBD接口引腳定義

汽車的OBD接口引腳定義分配如下圖所示,OBD接口共有16個引腳(可參考 ISO 15031-3)。 1、引腳1,3,8,9,11,12,13 引腳1,3,8,9,11,12,13由主機廠進行分配。 2、引腳2 如果車輛中使用SAE J1850 10,4 VPW(可變脈沖)來提供…

【React】精選10題

1.React Hooks帶來了什么便利? React Hooks是React16.8版本中引入的新特性,它帶來了許多便利。 更簡單的狀態管理 使用useState Hook可以在函數組件中方便地管理狀態,避免了使用類組件時需要繼承React.Component的繁瑣操作。 避免使用類組件…

小紅書運營 變現方法總結(精)

大家好,我是網媒智星,今天跟大家分享一下小紅書運營方面的知識,怎樣利用小紅書變現?全篇傾情干貨輸出,認真學習,保證您收獲多多。 首先,讓我們來分析一下小紅書平臺的優勢。關于賣東西&#xff…

Open3D (C++) 基于擬合高差的點云地面點提取

目錄 一、算法原理1、原理概述2、參考文獻二、代碼實現三、結果展示1、原始點云2、提取結果四、相關鏈接系列文章(連載中。。。): Open3D (C++) 基于高程的點云地面點提取Open3D (C++) 基于擬合平面的點云地面點提取Open3D (C++) 基于擬合高差的點云地面點提取</

vue + less 實現動態主題換膚功能

文章目錄 前言一、前提條件1. 初始化vue項目2. 安裝插件 二、新建文件夾主題theme1.style.less文件2.model.js文件3.theme.js文件theme文件夾最終效果 三、修改vue.config.js文件四、頁面上的具體使用1. index.vue 頁面2. index.vue 頁面注意點說明3. index.vue 效果 五、在js中…

VSCode使用SSH無密碼連接Ubuntu

VSCode使用SSH無密碼連接Ubuntu 前提條件&#xff1a; 1. 能夠正常使用vscode的Remote-ssh連接Ubuntu 2. Ubuntu配置靜態ip&#xff08;否則經常需要修改Remote-ssh的配置文件里的IP&#xff09; 鏈接-> ubuntun 18.04設為靜態ip&#xff08;.net模式&#xff0c;可連接…

shell使用總結

一、語法 數據類型 字符串 如果沒有特殊說明&#xff0c;數據類型默認都是字符串。常見字符串操作有&#xff1a; 已知變量strabcabc 1、切片 echo ${str:1:3} #${varName:offset:size},分頁取子串 echo ${str:2} #${varName:offset},偏移offset個字符取至末端 echo …

加載AB包程序集,反射獲取并實例化類調用方法

加載AB包文件&#xff0c;加載bytes程序集資源&#xff0c;通過反射獲取類&#xff0c;實例化添加組件&#xff0c;調用方法 public class LoadAB : MonoBehaviour {private void Update(){if (Input.GetKeyDown(KeyCode.H)){Load();}}void Load(){string classname "ID…