Ubuntu 安裝 ns-3 教程

Ubuntu 安裝 ns-3最全 教程
在這里插入圖片描述

1. 環境更新


sudo apt update
sudo apt install git

在這里插入圖片描述

2. Ns3 最低依賴要求

在這里插入圖片描述

2.1 安裝依賴

安裝依賴網址:根據自己安裝的版本安裝對應依賴。

https://www.nsnam.org/wiki/Installation

Ubuntu/Debian/Mint

以下軟件包列表在 Ubuntu 22.10 版本中應該是準確的;其他版本或其他基于 Debian 的系統可能略有不同。Ubuntu 16.04 LTS 版本可能是已知可與最新 ns-3 版本配合使用的最古老的版本。

軟件包列表取決于您嘗試構建的 ns-3 版本。

版本 3.36 及更高版本的最低要求:

sudo apt install g++ python3 cmake ninja-build git

如果您只下載源存檔,則不需要 Git。

Ubuntu 自帶 “make” 構建工具,但如果缺少它(其他一些基于 Debian 的發行版上),可能需要安裝 makeninja-build。Ninja 是 make 的替代品。

推薦用于 3.37 及更高版本:

Ccache 是一種編譯器緩存優化,加快構建速度,但會額外使用多達 5 GB 的磁盤空間。


sudo apt install ccache

注意:對于 Ubuntu 20.04 及更早版本,apt 提供的 ccache 版本(3.7.7 或更早)可能無法提供性能優勢,建議安裝版本 4 或更高。對于 Ubuntu 22.04 及更高,可以直接使用 apt 安裝。

版本 3.30-3.35 的最低建議要求:

sudo apt install g++ python3
3.29 及更早版本的最低建議要求:

sudo apt install g++ python2

注意:
從 ns-3.30 版本(2019 年 8 月)開始,ns-3 默認使用 Python 3,但早期版本依賴 Python 2 包,建議至少使用 Python 2 解釋器。
2022 年 1 月(ns-3.36 及 ns-3-dev),最低 g++ 版本為 g+±8。
Ubuntu 18.04/16.04 默認 g++ 版本較老,可通過 StackOverflow 和 Launchpad 獲取更高版本。


3. 可選/推薦組件依賴

3.1 Python 可視化工具和綁定(ns-3.37 及更高)

sudo apt install python3-pip
python3 -m pip install --user cppyy
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

3.2 Python API 用戶(3.30 ~ 3.36)


sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake

3.3 Python(開發)

需要 ns-3-allinone 倉庫(Git 克隆),還需:

sudo apt install python3-setuptools git

3.4 Netanim 動畫工具


sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools

Ubuntu 20.10 及更早版本:


sudo apt install qt5-default

3.5 支持 ns-3-pyviz 可視化工具(3.36 及更早版本)

sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

3.28 及更早版本:

sudo apt install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython

3.6 基于 MPI 的分布式仿真

sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

3.7 支持 bake 構建工具

sudo apt install mercurial unzip

3.8 調試 Debug

sudo apt install gdb valgrind

3.9 代碼樣式檢查(自 ns-3.37 起)

sudo apt install clang-format

注意:需要 clang-format-14 到 clang-format-16 版本。

3.10 Doxygen 和內聯文檔

sudo apt install doxygen graphviz imagemagick
sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

3.11 ns-3 手冊和教程 (Sphinx)

sudo apt install python3-sphinx dia

ns-3.15 需要 Sphinx >= 1.12,檢查版本用 sphinx-build

3.12 GNU 科學圖書館 (GSL)

sudo apt install gsl-bin libgsl-dev libgslcblas0

3.13 讀取 pcap 數據包

sudo apt install tcpdump

3.14 統計框架數據庫支持

sudo apt install sqlite sqlite3 libsqlite3-dev

3.15 基于 XML 的配置存儲

sudo apt install libxml2 libxml2-dev

3.16 支持生成修改后的 python 綁定(ns-3.36 及更早)

sudo apt install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip
python3 -m pip install --user cxxfilt

需要手動安裝 CastXML 和 Pygccxml(建議源代碼構建)。

3.17 基于 GTK 的配置系統

sudo apt install libgtk-3-dev

3.18 虛擬機和 ns-3

sudo apt install vtun lxc uml-utilities

3.19 openflow 模塊和 Boost 開發庫

sudo apt install libxml2 libxml2-dev libboost-all-dev

4. 下載和編譯 ns-3

cd ~
mkdir workspace
cd workspace
git clone https://gitlab.com/nsnam/ns-3-allinone.git

在這里插入圖片描述

cd ns-3-allinone
ls

在這里插入圖片描述

python3 download.py

在這里插入圖片描述

下載指定版本**(例如 ns-3.44):


python3 download.py -n ns-3.44

5. 編譯和測試

5.1 Debug 編譯


./ns3 configure --build-profile=debug --enable-examples --enable-tests

在這里插入圖片描述
%8B.assets%2Fimage-20250730164830248.png&pos_id=img-KPP7m60g-1753924561480)

5.2 編譯


./ns3 build

在這里插入圖片描述

5.3 測試用例執行


./test.py

在這里插入圖片描述

5.4 顯示編譯版本


./ns3 show profile

在這里插入圖片描述
%E5%AE%89%E8%A3%85%20ns-3%20%E6%95%99%E7%A8%8B.assets%2Fimage-20250730171923064.png&pos_id=img-fkmvXIGM-1753924561481)

5.5 執行程序


./ns3 run first

在這里插入圖片描述

5.6 編寫程序

scratch/ 文件夾下,只能有一個 .cc 文件。


6. NetAnim3.109 編譯


cd ~/workspace/ns-3-allinone/netanim-3.109
qmake
make

編譯完成后會出現一個 NetAnim 執行文件,然后:


./NetAnim

在這里插入圖片描述

在這里插入圖片描述

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

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

相關文章

《林景媚與命運解放者》

《林景媚與命運解放者》——當數據庫成為命運的主宰,誰將成為人類自由意志的解放者?《林景媚數據庫宇宙》系列第十二部第一章:解放者的召喚公元 2098 年,隨著“命運終結者”的威脅被解除,PostgreSQL Quantum Engine&am…

linux編譯基礎知識-頭文件標準路徑

&#x1f4c2; ??1. 系統路徑結構差異?? 要查看 GCC 的默認頭文件搜索路徑&#xff0c;可通過以下方法操作&#xff08;以 Linux 環境為例&#xff09;&#xff1a; ??1. 查看 C 語言頭文件路徑?? gcc -v -E -xc - < /dev/null 2>&1 | grep -A 100 "#in…

離線語音芯片有哪些品牌和型號?

離線語音芯片的品牌有很多&#xff0c;型號也有很多&#xff0c;因為離線語音芯片的市場很大&#xff0c;幾乎所有的想要語音控制的產品都可以通過增加一顆離線語音芯片來實現語音控制的能力&#xff0c;今天主要提到的就是離線語音芯片品牌廠家之一的唯創知音。唯創知音發展歷…

Linux 軟件包管理

Linux 軟件包管理 分析 RPM 包 Linux 發行版本以 RHEL 為代表的發行版本&#xff0c;使用rpm包管理系統&#xff1a; RHEL (Red Hat Enterprise Linux&#xff09;Fedora&#xff08;由原來的RedHat桌面版本發展而來&#xff0c;免費版本&#xff09;CentOS&#xff08;RHEL的…

使用 Vue 3.0 Composition API 優化流程設計器界面

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

2025Nacos安裝Mac版本 少走彎路版本

https://github.com/alibaba/nacos 一開始看網上文章&#xff0c;隨便下了一個最新的3.0.2&#xff0c;然后出現很多錯誤 密鑰等等問題&#xff0c;最后啟動了&#xff0c;但是打不開鏈接&#xff1a;http://localhost:8848/nacos 然后開始找問題日志&#xff0c;/.nofollow/…

sifu mod制作 相關經驗

sifu mod制作一遍流程數據傳遞后拆開是ok的&#xff0c;沒必要合并 斷片不能使用原材質不然導入ue里沒法片段選擇 效果拔群 帶自動權重就會有跟隨骨骼的效果&#xff0c;空頂點組會跟隨父級的原點 這個選負的會抵消膠囊的碰撞效果 應用并刷新布料模擬&#xff08;相當于工程圖的…

論文精讀筆記:Overview

本文檔記錄了一些經典論文的講解筆記。 重讀經典&#xff1a;《ImageNet Classification with Deep Convolutional Neural Networks》 重讀經典&#xff1a;《Generative Adversarial Nets》 重讀經典&#xff1a;《Deep Residual Learning for Image Recognition》 重讀經典…

Elasticsearch+Logstash+Filebeat+Kibana單機部署

目錄 一、配置準備 下載java&#xff0c;需要java環境 二、單機模式 ELK部署 修改域名解析 elasticsearch配置 啟動elasticsearch服務 查看是否啟用 查看監聽端口 logstash服務 創建配置文件 kibana 啟動服務kebana 驗證 網頁訪問 ?編輯 生成圖表 回到網頁 一、配置準…

redis快速部署、集成、調優

redis快速部署、集成、調優 1.部署 1.1 docker部署 參考&#xff1a;https://blog.csdn.net/taotao_guiwang/article/details/135508643 1.2 redis部署 資源見&#xff0c;百度網盤&#xff1a;https://pan.baidu.com/s/1qlabJ7m8BDm77GbDuHmbNQ?pwd41ac 執行redis_insta…

大學生HTML期末大作業——HTML+CSS+JavaScript音樂網站

HTMLCSSJS【音樂網站】網頁設計期末課程大作業 web前端開發技術 web課程設計 網頁規劃與設計&#x1f4a5; 文章目錄一、&#x1f3c1; 網站題目二、&#x1f6a9; 網站描述三、&#x1f38c; 網站介紹四、&#x1f3f4; 網站效果五、&#x1f3f3;? 網站代碼六、&#x1f3f3…

ARP協議是什么?ARP欺騙是如何實現的?我們該如何預防ARP欺騙?

ARP&#xff08;Address Resolution Protocol&#xff0c;地址解析協議&#xff09;是一個工作在數據鏈路層&#xff08;OSI第二層&#xff09;和網絡層&#xff08;OSI第三層&#xff09;之間的基礎網絡協議&#xff0c;它的核心功能是將網絡層地址&#xff08;IP地址&#xf…

一個物理引擎仿真器(mujoco這種)的計算流程

物理仿真的核心循環 一個典型的物理仿真引擎&#xff0c;在每一個時間步&#xff08;dt&#xff09;內&#xff0c;大致會執行以下流程&#xff1a; 確定當前狀態 (State)&#xff1a;獲取所有物體當前的位置 q 和速度 v。計算力 (Forces)&#xff1a;根據當前狀態&#xff0c;…

自然語言處理NLP(3)

上文&#xff1a; 自然語言處理NLP&#xff08;1&#xff09; 自然語言處理NLP&#xff08;2&#xff09; Gated RNN & LSTM 簡單RNN存在的問題 隨著時間的回溯&#xff0c;簡單RNN不能避免梯度消失或者梯度爆炸 梯度裁剪 用來解決梯度爆炸問題 code: g&#xff1a;所有參…

內循環全部滿足條件后,為true

### 實現方式在 C 中&#xff0c;可以通過在內循環外部定義一個布爾變量&#xff0c;并在內循環的每次迭代中檢查特定條件是否滿足。如果所有迭代均滿足條件&#xff0c;則在內循環結束后將布爾變量設置為 true。以下是一個示例代碼&#xff1a;cpp #include <iostream>i…

STM32--DHT11(標準庫)驅動開發

一、前言在我們進行嵌入式開發時&#xff0c;驅動開發也是十分重要的一步&#xff0c;在很多時候&#xff0c;我們的都需要自己來編寫硬件的底層驅動&#xff0c;實現硬件與芯片的通信&#xff0c;常見的協議有SPI&#xff0c;IIC&#xff0c;以及單總線的一些通信方式&#xf…

HttpServletRequest 和 HttpServletResponse核心接口區別

HttpServletRequest 和 HttpServletResponse核心接口區別在 Java Web 開發&#xff08;基于 Servlet 規范&#xff09;中&#xff0c;HttpServletRequest 和 HttpServletResponse 是兩個核心接口&#xff0c;分別代表 ??HTTP 請求?? 和 ??HTTP 響應??。它們的主要區別在…

win10 環境刪除文件提示文件被使用無法刪除怎么辦?

因為我沒想太好怎么模擬一個文件被使用&#xff0c;我就使用 "java -jar xxx.jar" 模擬 xxx.jar 文件被使用無法刪除吧。現在有一個后臺進行在執行 java -jar chat-robot-1.0.0.jar &#xff0c;所以此時刪除 chat-robot-1.0.0.jar 提示&#xff1a;當然這個提示對于…

1.7vue生命周期

生命周期階段與鉤子函數創建階段beforeCreate()&#xff1a;實例初始化之后&#xff0c;數據觀測和事件配置之前調用。此時無法訪問到data、methods等屬性。created()&#xff1a;實例創建完成后調用。完成了數據觀測&#xff0c;屬性和方法的運算&#xff0c;watch/event事件回…

第十八天(指紋識別WAF判斷蜜罐排除)

Web架構 開源CMS&#xff1a; Discuz、WordPress、PageAdmin、蟬知等 前端技術&#xff1a; HTML5、Jquery、Bootstrap、Vue、NodeJS等 開發語言&#xff1a; PHP、JAVA、Ruby、Python、C#、JS、Go等 框架組件&#xff1a; SpringMVC、Thinkphp、Yii、Tornado、Vue等 Web服…