ns-2解决问题之no class variable Tracefile::debug_

之前已经写过如何在Ubuntu18.04中安装NS-2.35的文章,详情点击这里

因为要做有关LDoS的实验,又希望找到别人写的有关源码,几经周折,终于在Shrew's Homepage上找到了原作者提供的资料。但是在准备工作做好之后,按照READEME中的提示进行操作,却并不是那么顺利。这大概是在Linux系统下配置环境普遍会遇到的问题,找不到原因折磨到你直接换系统,再来一次。不过幸而恰好没网,换系统的话再装其他的包不成,所以还是自己寻找原因。

下面说一下具体问题以及我的解决方案。

按照源代码的ReadMe中的Introduction,我进入到相应目录,执行dos.run操作命令,却得到如下图所示的错误:

关键信息在“warning: no class variable Tracefile::debug_”,真是看不懂,不过既然提示是在执行“./ns dos.tcl reno 0 ……”语句出的错,那就去单独执行一下该语句,结果当然也是确实如此:

可以看到在后面我又单独进入了ns,进行了设置变量的操作,即"set tfile [new Tracefile]",提示同样的错误,那么可以确定问题的关键点就在这里了,在dos.tcl中该语句如下:

既然是没有变量,那多半是ns工具代码本身的问题,我等菜鸡怕是没办法了,于是只有拿着错误信息去百度了。在山竹的博客的NS2模拟真实流量找到了相关解决方案,具体可以去他的博客了解,也可以参考相关信息的英文网站,那里提供了解决该问题的补丁包,也可以在本网站中搜索ns-2补丁包直接下载。

这里重点需要说明的就是这个补丁包并不是下来直接就用的,需要对该patch中的内容做些许修改,即将里面的版本信息修改为你所安装的ns-2的版本信息。如下图:

比如我的是2.35,就将原来的2.27修改为2.35,因为原patch文件是受保护的,所以修改完后再另存为一个新的文件,然后把这个新的文件按照补丁文件的README的要求操作即可。(修改的话查找替换一波搞定没问题吧?)

最后我这里是顺利搞定,希望对遇到此问题的朋友能有所帮助。

发布了25 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Secur17y/article/details/88049393