NS2在eclipse下的部署以及调试

1、下载eclipse并安装CDT插件。CDT插件使得eclipse可以创建C、C++工程。下载CDT插件的时候注意和 clipse版本匹配。当然你也可以到eclipse的官方网站,直接下载一个专门开发C、C++的eclipse版本。这样就不用安装CDT插件了。

2、安装ns后,并不能调试ns,因为在安装时的编译链接操作并没有将调试信息加入到可执行文件ns中,此时的ns文件只有5M多大小。要调试ns,需要将调试信息加入到ns文件中,这就要修改Makefile文件,使其中的gcc命令加入-g选项,但这不需要手动修改,具体操作如下:

进入ns-allinone-2.35./ns2.35目录,执行命令
./configure --enable-debug
此操作会生成新的Makefile,查看新Makefile文件中的编译命令会发现增加了-g选项。增加了调试信息的ns文件有15M大小

3、在eclipse中,依次选择[File -> New -> Project -> C++ project -> Makefile project ]。填入Project 名称NS-2.27。将Use Default Location 的勾去掉。然后将Location 設成Makefile 所在的目录NS2.35。在toolchains中要选择Linux GCC。之后点击finish。

4、大功告成,这时候你可以查看eclipse的控制台Console,里面在疯狂的显示eclipse编译NS2的相关信息。貌似就是在Make。

5、如果很不幸,eclipse编译后出现3个错误,第一个错误是关于找不到namespace CPP_NAMESPACE,第二个、第三个……。下面教你修复这个错误,进入NS2 2.27目录,打开autoconf.h文件。将以下内容替换:

/* stl */
#ifdef __cplusplus
#define HAVE_STL 1

#define CPP_REQUIRES_NAMESPACE 1
#ifdef CPP_REQUIRES_NAMESPACE
using namespace CPP_NAMESPACE;
#endif /* CPP_NAMESPACE */
#endif /* __cplusplus */

替换为:

/* stl */
#ifdef __cplusplus
#define HAVE_STL 1
#define CPP_NAMESPACE std

#define CPP_REQUIRES_NAMESPACE 1
#ifdef CPP_REQUIRES_NAMESPACE
using namespace CPP_NAMESPACE;
#endif /* CPP_NAMESPACE */
#endif /* __cplusplus */

6、重新make。在eclipse中NS2工程上右键-built configuration-build-all 。这次真的大功告成,如果还问题,我也没碰到,自己解决吧。

---------------------------------------------------------------------------------------------------

1、首先修改ns-2.34目录中的Makefile文件,开启调试模式,便于gdb调试

CC = gcc
CPP = g++
改为
CC = gcc -g
CPP = g++ -g
2、打开Eclipse,File->Import一个已经存在的工程,GCC类型是Linux GCC工程目录是$NS_HOME/ns-2.34
3、设置Run属性:在工程目录下找到ns文件,右击ns,选择properties, 在出现的属性页的左边选 Run/Debug Settings, 点击右边的New按钮,在随即弹出的窗口中选中C/C++ Local Application, 点击OK按钮,会弹出一个Properties for New_configuration的框,在Name里面命名你的ns程序,默认就是ns,在Main页的C/C++Applicaion中选择NS的可执行文件即可,
4、运行: 做好以上设置后可以编译,并运行ns。编译可以单独在终端里面编译,Eclipse的Build太慢了,看着进度条一动不动就心烦。编译完后运行可点击工具栏中的Run->ns按钮来运行。 运行后Console中的提示符变为%,此时可在Console中执行NS命令。比如可输入:
Puts “Hello NS2”
会输出: Hello NS2
这表明在Eclipse中运行NS基本成功了!
5、设置Arguments:NS有两种运行方式,在终端中直接输入ns,会出现%提示符,在该提示符下可输入NS命令。上一步所示属于这种方式。另一种方式是在终端输入某个tcl文件的名字,比如tcl/ex/simple.tcl文件,在该文件所在目录下打开一个终端,输入ns tcl/ex/simple.tcl即可执行该文件,此种方式如同批处理的方式运行tcl文件中的ns命令。这种运行方式在Eclipse中也可以实现。这需要设置。
同3步一样,进入Properties for New configuration框,点击Arguments, 在其中的program arguments框中输入tcl/ex/simple.tcl并保存即可。
6、在Eclipse中运行ns, 则相当于在终端中执行ns tcl/ex/simple.tcl一样的结果。以后如果需要运行不同的tcl文件,在用5步的方法修改运行参数即可。
7、如果要调试,那么点旁边的Debug(ns)按钮,然后就会出现调试窗口,按F8,然后就会在你设置的断点处停下,然后就可以查看变量检查错误
8、另外,可能在Console中输出的内容非常多,运行结束后显示不能完全,因此可以将Console输出重定向到文件中,同第3步中打开Properties for New_configuration对话框,在Common标签的Standard input and output组中的File中输入你要重定向的文件,比如我把输出内容重定向到/home/eclipse.out,如果不勾选Allocate Console选项,则运行的时候不会在Console中显示输出
























----------------------------------------------------------------------------------------------------------------------------

当用./configure --enable -debug生成带调试功能的Makefile后,我们去make时,注意,这时在ns2之前添加的协议要重新加入到Makefile的OBJ_CC中,因为这个是重新生成的;

2、还要注意在新生成的Makefile中加入了 -Werror选项,导致遇到Waring被当成是error去处理了,所以很麻烦,这时要将这个参数删掉即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值