使用eclipse编译ns-3

使用eclipse编译ns-3

1. 概述

习惯可视化编程界面的读者可能不适应命令行下编译调试程序,实际上ns-3程序使用任何一个你熟悉的C++代码编译器都可以,ns-3中源文件(.cc)就是C++程序。这里给大家介绍一个比较优秀的IDE集成开发环境eclipse(就是比较占内存),它支持如JAVA、C/C++、Python、PHP等多种语言,而且跨平台。详细情况请参考: https://www.nsnam.org/wiki/HOWTO_configure_Eclipse_with_ns-3。

2. 安装eclipse和C/C++语言插件CDT

系统环境为Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-24-generic i686)
sudo apt-get install eclipse
sudo apt-get install eclipse-cdt //如果是root用户,sudo可省掉。
使用eclipse编译ns-3_第1张图片
图 1 apt-get安装eclipse
输入y确认后,报错“E: Sub-Process /usr/bin/dpkg returned an error code(2)”,百度一下这个错误2,比较官方的解释如下:
http://askubuntu.com/questions/226644/esub-process-usr-bin-dpkg-returned-an-error-code-2
使用eclipse编译ns-3_第2张图片
图2 error code(2)
按照说明操作,结果是it doesn’t work,no ways,于是根据提示思考了一番,断言是自己虽然是root用户,可能是远程桌面的原因,root用户“至高无上”的权限没有发挥出来,于是将root用户当作普通用户一样操作,加sudo解决。
使用eclipse编译ns-3_第3张图片
图3 解决error code(2)
成功安装后,进入首页面会出现C/C++ Development的工程项,Eclipse版本是3.8.1。
使用eclipse编译ns-3_第4张图片
图4 Ubuntu14.04+Eclipse3.8.1
然而,当系统环境为Ubuntu 10.04 LTS - the Lucid Lynx - released in April 2010时,该系统支持到2013年,目前有些软件源不能使用,使用命令行安装eclipse-cdt失败。本人比较偏爱该发布版,一直没有放弃使用。
使用eclipse编译ns-3_第5张图片
图5 Ubuntu10.04+Eclipse3.5.2
解决方法是:用Eclipse的自带的安装功能成功安了CDT组件,主要是找对使用软件源安装老版本Eclipse所对应的CDT地址(Ubuntu 10.04),本人使用的CDT下载地址如图6所示。如果还有不明白的可以百度一下,或者参考 http://www.crifan.com/install_eclipse_cdt_plugin/。
使用eclipse编译ns-3_第6张图片
图6 Eclipse安装CDT

3. 在eclipse中配置对ns-3的支持


1) 新建ns-3空工程。 File -> New -> Project,选择C++Project,Project name可以用ns-3.24.1,选择Empty Project,几步Next之后,直接点Finish如图7所示。
使用eclipse编译ns-3_第7张图片

使用eclipse编译ns-3_第8张图片
图7 新建C++空工程
2) 将ns-3.24.1文件导入eclipse的ns-3.24.1空工程中。 将下载的ns-3.24.1压缩包解压,解压后的文件全部复制到刚才建立的工作目录下。
使用eclipse编译ns-3_第9张图片

图8 复制压缩包文件到工程目录
使用./waf -d debug --enable-example --enable-tests configure命令配置一下ns-3项目,然后在ProjectExplorer中的工程上单击右键,选择Fresh,就可以看到导入的所有源文件,如图9所示。
使用eclipse编译ns-3_第10张图片
图9 导入文件后F5

4. 设置eclipse中ns-3编译器为waf

在Project Explore中ns-3.24.1上单击右键,选择Properties,做如下操作:在C/C++ build中的Build Settings选项卡如图2-3所示中,去掉Use default build command复选框中的钩,并在buildcommand中输入${workspace_loc:/ns-3.24.1/waf};去掉Generate Makefilesautomatically复选框中钩,在build directory中输入${workspace_loc:/ns-3.24.1/build}。
使用eclipse编译ns-3_第11张图片
图10 Build Settings选项卡
然后,如图11所示在C/C++ build中的behaviour选项卡中,Workbench Build Behaviour中的复选框都选上,前2个的值置为空,最后一个是clean。
使用eclipse编译ns-3_第12张图片
图11 behaviour选项卡
最后单击OK保存。这时就可以点击Build Project进行编译,如图12所示。

使用eclipse编译ns-3_第13张图片

图12 Build


5. 设置eclipse执行程序使用外部工具

选择Run -> External Tools -> External tools Configurations,在Program中右键选择New,name可以设置为ns3-waf,如图2-6所示,在location中设置${workspace_loc:/ns-3.24.1/waf},在workingdirectory中设置${workspace_loc:/ns-3.24.1},argument设置为--run “${string_prompt}”。
使用eclipse编译ns-3_第14张图片
图13 Run
最后,单击Run,这时输入scratch目录下要执行的程序(不用加后缀名.cc),scratch是ns-3默认执行文件的位置,单击新增的按钮就可以完成仿真。仿真结果会在console中显示,也可以调用PyViz可视化工具显示运行结果,不需要使用trace文件。有关PyViz的纤细内容请参看网址: http://www.nsnam.org/wiki/index.php/PyViz。至此,我们已经成功配置了在eclipse中编译ns-3的所有环境。有关ns-3的安装请参考本人上一篇文章 http://bbs.ruijie.com.cn/forum.php?mod=viewthread&tid=2762。

6.结语

以上关于在eclipse中编译ns-3相关技术的简单解析,还有很多具体细节的问题没有涉及到。还请各位工程师从网络上获取相关文档并研究。经常访问锐捷社区无线版本的网页, http://bbs.ruijie.com.cn/?fromuser=unrecoverable找到最新的信息和资料。也非常欢迎您加我好友一起切磋技术,同时也欢迎各位在论坛上提问。

参考文献

https://www.nsnam.org/wiki/HOWTO_configure_Eclipse_with_ns-3
马春光, 姚建盛. ns-3网络模拟器基础及应用[M]. 北京:人民邮电出版社, 2014

你可能感兴趣的:(wireless)