Hello Ramon et al, My problem is that I declared nIfaces, targetlist and ifqueuelist in the aodv.h file but out of the class declaration. Now I can recompile ns but I still had many many warnings like that
/usr/local/ns/mulf/ns-allinone-2.27/tclcl-1.15/tracedvar.h:49: warning: ‘class TracedVar’ has virtual functions but non-virtual destructor /usr/local/ns/mulf/ns-allinone-2.27/tclcl-1.15/tracedvar.h:87: warning: ‘class TracedInt’ has virtual functions but non-virtual destructor /usr/local/ns/mulf/ns-allinone-2.27/tclcl-1.15/tracedvar.h:130: warning: ‘class TracedDouble’ has virtual functions but non-virtual destructor common/scheduler.h:71: warning: ‘class Handler’ has virtual functions but non-virtual destructor common/ip.cc: In member function ‘virtual void IPHeaderClass::export_offsets()’: common/ip.cc:53: warning: invalid access to non-static data member ‘hdr_ip::src_’ of NULL object common/ip.cc:53: warning: (perhaps the ‘offsetof’ macro was used incorrectly) common/ip.cc:54: warning: invalid access to non-static data member ‘hdr_ip::dst_’ of NULL object common/ip.cc:54: warning: (perhaps the ‘offsetof’ macro was used incorrectly) common/ip.cc:55: warning: invalid access to non-static data member ‘hdr_ip::ttl_’ of NULL object common/ip.cc:55: warning: (perhaps the ‘offsetof’ macro was used incorrectly) common/ip.cc:56: warning: invalid access to non-static data member ‘hdr_ip::fid_’ of NULL object common/ip.cc:56: warning: (perhaps the ‘offsetof’ macro was used incorrectly) common/ip.cc:57: warning: invalid access to non-static data member ‘hdr_ip::prio_’ of NULL object common/ip.cc:57: warning: (perhaps the ‘offsetof’ macro was used incorrectly) Any idea about this is welcome. Cheers, Nguyen. Nguyen Lan wrote: > Hello, > > I have not declared them in common/packet.h. The only place I put them > in is aodv.h (as in the document). I think this problem came from > other place and I should read the document carefully but now I don't > know yet. > Thank you very much. > > Cheers, > Nguyen > > Ramon Aguero wrote: >> Hello, >> >> Why have you declared nIfaces, targetlist and ifqueuelist in >> common/packet.h? >> >> Cheers, >> Ramón >> >> At 07:34 06/02/2007, Nguyen Lan wrote: >>> Hi Ramon and all, >>> >>> After following the document when I recompile ns I got this error. >>> Maybe I was wrong some where >>> >>> aodv/aodv.o:/usr/local/ns/mulf/ns-allinone-2.27/tclcl-1.15/tclcl.h:60: >>> multiple definition of `nIfaces' >>> aodv/aodv_logs.o:./common/packet.h:413: first defined here >>> aodv/aodv.o:./aodv/aodv_packet.h:161: multiple definition of >>> `targetlist' >>> aodv/aodv_logs.o:./common/packet.h:353: first defined here >>> aodv/aodv.o:aodv/aodv.cc:65: multiple definition of `ifqueuelist' >>> aodv/aodv_logs.o:./common/packet.h:423: first defined here >>> collect2: ld returned 1 exit status >>> make: *** [ns] Error 1 >>> >>> Could anyone help me. >>> >>> Thanks >>> Ramon Aguero wrote: >>>> Hi Anthony, >>>> >>>> thanks for your feedback; I think that your proposal is perfectly >>>> fine. >>>> >>>> I've sent an email previously, about the same changes. I think that >>>> the problem was that in the first version of the document we did >>>> not highlight a couple of lines (the ones that you've modified); in >>>> the original ns-mobilenode.tcl file, these two lines started with >>>> $arptable_ **Note the underscore** >>>> >>>> In the modified procedure, however, it was $arptable **Without the >>>> underscore**, which is, exactly what you propose, since the >>>> $arptable variable is $arptable_($t). >>>> >>>> Cheers, >>>> Ramón >>>> >>>> At 07:29 04/02/2007, Anthony Plummer wrote: >>>> >>>>> Ramon's submission (http://personales.unican.es/aguerocr/) of a >>>>> multiple-channel extension to ns2 works well after a slight >>>>> modification to the code in the pdf. In tcl/lib/ns-mobilenode.tcl the >>>>> arptable modification (pg. 24 & 25 of pdf) needs to change the >>>>> arptable in two additional lines. >>>>> #We also create one ARP table per interface >>>>> set arptable_($t) [new ARPTable $self $mac] >>>>> set arptable $arptable_($t) >>>>> # FOR backward compatibility sake, hack only >>>>> if {$imepflag != ""} { >>>>> set drpT [$self mobility-trace Drop "IFQ"] >>>>> } else { >>>>> set drpT [cmu-trace Drop "IFQ" $self] >>>>> } >>>>> $arptable_($t) drop-target $drpT // Should be changed to this here >>>>> if { $namfp != "" } { >>>>> $drpT namattach $namfp >>>>> } >>>>> >>>>> # >>>>> # Link Layer >>>>> # >>>>> $ll arptable $arptable_($t) // Should be changed to this here >>>>> $ll mac $mac >>>>> $ll down-target $ifq >>>>> >>>> >>>> >>>> >>>> >> >> > >