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