ns2的问题,关于队列管理算法的。高手帮帮我。。。谢谢。

xianghuxuexia 2014-05-26 04:44:24
我按照这个网上搜的方法添加新队列算法
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
终于又添了一个myred,可以对其进行随心所欲的改动了
具体步骤: 1。将要添加的队列,如Fred.h和Fred.cc复制到C:/cygwin/home/acer/ns-allinone-2.27/ns-2.27/queue,此文件夹下集中了许多队列算法。 2。修改C:/cygwin/home/acer/ns-allinone-2.27/ns-2.27/tcl/lib目录下的ns-default.tcl 对新增加的队列进行一些参数的初始化。 3。修改C:/cygwin/home/acer/ns-allinone-2.27/ns-2.27下的makefile文件,将queue/Fred.o加入到OBJ_CC内,如果还不行的话,可以修改makefile.vc,同样是添加queue/fred.o。 4。在Cygwin窗口中ns-allinone-2.27/ns-2.27下执行make命令进行重新编译。 5。重新编译成功,则在C:/cygwin/home/acer/ns-allinone-2.27/ns-2.27/queue下发现新产生Fred.o文件 6。执行测试ns sim.tcl,将其中的队列算法改为新增加的队列算法Fred 7。测试完毕。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
我把sred.cc和sred.h放到了queue下,然后修改了MakeFile,将queue/sred.o加到了OBJ_CC下,然后make出现了错误。请高手指导一下,怎么修改?
我是新手。。。多谢赐教。。


错误提示:
root@zhangzhuo-desktop:~/ns-allinone-2.35/ns-2.35# make
g++ -c -Wall -Wno-write-strings -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DLINUX_TCP_HEADER -DUSE_SHM -DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_14 -DHAVE_OTCL_H -DHAVE_LIBTK8_5 -DHAVE_TK_H -DHAVE_LIBTCL8_5 -DHAVE_TCLINT_H -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO_SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I. -I/root/ns-allinone-2.35/tclcl-1.20 -I/root/ns-allinone-2.35/otcl-1.14 -I/root/ns-allinone-2.35/include -I/root/ns-allinone-2.35/include -I/root/ns-allinone-2.35/include -I/usr/include/pcap -I./tcp -I./sctp -I./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./routing -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./satellite -I./wpan -o queue/sred.o queue/sred.cc
queue/sred.cc: In member function ‘virtual void SREDQueue::trace(TracedVar*)’:
queue/sred.cc:389: error: invalid conversion from ‘const char*’ to ‘char*’
queue/sred.cc:390: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/sred.o] 错误 1
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-27
  • 打赏
  • 举报
回复
v->name()这个函数返回值如果是char *类型的话 if (((p = strstr((const char *)(v->name()), "curq")) == NULL) && ((p = strstr((const char *)(v->name()), "curq")) == NULL)) {
xianghuxuexia 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
在queue/sred.cc的389和390行在相应变量前加(char *)试试看。
第389和390分别为: if (((p = strstr(v->name(), "curq")) == NULL) && ((p = strstr(v->name(), "curq")) == NULL)) { 程序看不太懂,不知道在哪里加啊?
赵4老师 2014-05-26
  • 打赏
  • 举报
回复
在queue/sred.cc的389和390行在相应变量前加(char *)试试看。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧