网络模拟器中的“未定义引用`hdr_aodv :: offset_'”错误

时间:2015-11-19 15:23:54

标签: linux unix network-programming ns2

我正在尝试使用NS 2.35对AODV路由协议进行一些改进。我在AODV.cc和AODV.h文件中做了一些更改。为了使更改生效,我从NS 2.35文件夹中的终端发出以下三个命令:

  1. sudo su
  2. 2.make clean

    3.make

    现在我遇到以下错误:

    trace/cmu-trace.o: In function `CMUTrace::format_aodv(Packet*, int)':
    cmu-trace.cc:(.text+0x18b7): undefined reference to `hdr_aodv::offset_'
    

    这是什么解决方案?

    有关详细说明,请在此处提供.cc文件链接:

    https://drive.google.com/file/d/0B1OEPsG0ILELWkcxQ254TEpoN3M/view?usp=sharing

1 个答案:

答案 0 :(得分:0)

当然你必须得到一个错误......你已经改变了一些将在cmu-trace.cc中使用的打印参数。

我不知道你想做什么,但很明显你不应该从fprintf更改这些参数。

喜欢这里:

 fprintf(stderr,
             "%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%f\t%s%f\n",
             "src=",         index,
             "dst=",         rp->rp_dst,
             "nhops=",       rp->rp_hop_count+1,
             "opthops=",     opthops,
             "sumHops=",     sumHops,
             "sumGodHops=",  sumGodHops,
             "numRtsFound=", numRtsFound,
             "prevHop=",     ch->prev_hop_, 
             "t:",           CURRENT_TIME,
             "RTT=",         CURRENT_TIME - rp->rp_timestamp);

         fprintf(gspTraceFile,
             "%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%d\t%s%f\t%s%f\n",
             "src=",         index,
             "dst=",         rp->rp_dst,
             "nhops=",       rp->rp_hop_count+1,
             "opthops=",     opthops,
             "sumHops=",     sumHops,
             "sumGodHops=",  sumGodHops,
             "numRtsFound=", numRtsFound,
             "prevHop=",     ch->prev_hop_, 
             "t:",           CURRENT_TIME,
             "RTT=",         CURRENT_TIME - rp->rp_timestamp);

准确地说出你想做什么,也许我可以帮助你或者其他人帮助你。