NS3 - 關於Waf


用waf編譯
上一節講了用build.py編譯,其實也可以用waf編譯,簡單介紹一下。

編譯方法二:用waf
我們使用waf來配置和編譯ns-3工程軟件包,這一點不是嚴格必須的,但是做一個簡單的介紹是很有必要的,起碼可以了解如何修改工程的配置。也許你能做出的最有用的配置修改就是編譯工程的優化版本了,默認你會將你的工程編譯為調試版本,讓我們來使工程做出優化的編譯。
為了通知waf進行優化編譯,你需要執行如下的命令:
./waf -d optimized configure
1
需要注意輸入的最后一部分。部分ns-3選項並不是默認的,需要底層系統的支持才能夠順利運行。例如:為了運行XmlTo, 系統必須安裝libxml-2.0庫,如果沒有發現這個庫,相應的ns-3特性就不會被激活,這會以消息顯示出來。另一個需要注意的地方是:對於一些特定的程序,需要使用sudo命令來設置該程序的。這個是默認設置為關的,所以此性質會顯示出未激活,現在我們可以進一步返回到調試編譯上來:
./waf -d debug configure
1
此時編譯系統被配置好,你可以編譯ns-3程序的debug版本了,只需簡單的命令如下:
./waf
1
一些waf命令在編譯階段是很重要的,另一些命令是在配置階段有用的,例如,如果你想使用ns-3的仿真(emaulation)特性,你一定要通過上述的sudo來設置用戶標識位(suid)為有效位。這將是一個配置命令,你可以使用如下命令通知Waf來重新設置:
./waf -d debug --enable-sudo configure
1
如果你這樣做,waf會運行sudo以root的權限來改變仿真代碼的socket創建程序。在waf中還有許多其它的配置和編譯選項可用。若要察看詳細的選項,鍵入以下命令:
./waf --help
1
waf常用命令
1 配置及編譯:
$ ./waf configure [option]
$ ./waf
1
2
3
幫助: $ ./waf --help

配置調試,優化調試:

$ ./waf -d configure
: debug,optimized
1
2
改變flag: $ CXXFLAGS="-O3" ./waf configure
或者: $CXX=g++-3.4 ./waf configure

編譯的結果放在目錄:build//srcpath

2 常見命令
1.開啟例子及幫助:

$ ./waf configure --enable-examples --enable-tests
1
2.運行doxygen生成文檔

$ ./waf --doxygen
1
3.運行代碼分析:

$ ./waf configure --enable-gcov
$ ./waf --lcov-report
1
2
4.運行程序

$ ./waf --run "program [args]"
1
5.使用幫助工具運行waf

$ ./waf --run programname --command-template "... %s ..."
如: $ ./waf --run run-tests --command-template "valgrind %s"
1
2
6.使用shell調試

$ ./waf --shell
例: $./waf --shell
1
2
$cd build/debug/examples
$gdb first
1
2
7.清除整個build目錄

$ ./waf distclean
1
8.創建一個發布壓縮包,包含源代碼目錄中的所有文件

$ ./waf dist
1
9.強制禁止python bindings

$./waf --disable-python configure
1
10.讓build系統使用sudo設置suid bit

$./waf --enable-sudo configure
1
11.重置waf

$cd repos/ns-3-allinone
$ ./build.py
————————————————
版權聲明:本文為CSDN博主「rical730」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/rical730/article/details/71514404


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM