Hi, Thank you for your help. Peter, I am not sure if my problems have anything to do with the use of hashmaps, because I used maps before without a problem. Eddie, you asked my which linker errors appeared. But I cannot reproduce these linker errors anymore after performing a make distclean. But now I have some other problems. This is my code:
End of file trains_tcb.cc: #include <click/bighashmap.cc> #include <click/vector.cc> CLICK_ENDDECLS ELEMENT_PROVIDES(sctp_Trains_TCB) ELEMENT_REQUIRES(sctp_Trains_Timer) ELEMENT_REQUIRES(sctp_Trains_Link) End of file trains_CDM.cc: CLICK_ENDDECLS ELEMENT_REQUIRES(sctp_Trains_TCB) ELEMENT_REQUIRES(sctp_Trains_Timer ) ELEMENT_REQUIRES(sctp_Trains_Link) EXPORT_ELEMENT(Trains_CDM) When I compile this, I get the following error: ../elements/local/trains/trains_CDM.cc:98: error: `get_databuffer_length' undeclared (first use this function) (and so on for some other functions) where get_databuffer_length() (and the other functions the compiler is complaining about) is a funcion provided bij trains_tcb.cc. If I put a mistake in de file trains_tcb.cc or trains_tcb.hh, the compiler doesn't complain. So I believe that this file isn't compiled. But I don't understand why. Nele Peter De Cleyn wrote: > Hi Nele, > > > Im' not sure if you are trying to use map structures in Click > elements, but if so I think it is better to use the implementations > provided in Click itself. In one of the elements we created, I needed > to include the cc (!!) file of the bighashmap at the end in order to > get things working and provided the necessary ELEMENT_PROVIDES > statements. > > So to be clear: file1.cc and file1.hh define some functionallity > (using a map), but do not define an element. element1.cc and > element1.hh do define an element and need to use the functionality of > file1. > > element1.hh includes file1.hh > > and > > --------------------------------------------------- > last lines of file1.cc using bighasmap > --------------------------------------------------- > > #include <click/bighashmap.cc> > > > CLICK_ENDDECLS > > ELEMENT_PROVIDES(MIP_BINDING_TABLE) > > ELEMENT_REQUIRES(MIP_BINDING); > > > --------------------------------------------------------------------- > last lines of element1.cc using file1 > --------------------------------------------------------------------- > > #include <click/bighashmap.cc> > > > CLICK_ENDDECLS > > ELEMENT_REQUIRES(MIP_BINDING_TABLE) > > ELEMENT_REQUIRES(MIP_BINDING) > > ELEMENT_REQUIRES(MIP_FA_BINDING) > > EXPORT_ELEMENT(ForeignAgent) > > > ----------------------------------------------- > > > Remark, file1 itselfs requires functionality from a second > non-element. So you can generalise the use of the > ELEMENT_REQUIRE/ELEMENT_PROVIDE macros, but I added the REQUIRES again > in the element file. I don't know if this was necessary, but it works ;-) > > > Hope this is helpful to you, > > > Peter De Cleyn > > > Universiteit Antwerpen > Departement Wiskunde-Informatica > Middelheimlaan 1 > 2020 Antwerpen > > > On 7/2/07, *Nele Gheysens* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Hello, > > I tried to apply the following FAQ from the trains website: > > /How can I make Click compile a C++ file that doesn't contain an > element? > Add an ELEMENT_PROVIDES statement to your .cc file. The Click build > process searches for C and C++ files with 'ELEMENT_PROVIDES' as > well as > 'EXPORT_ELEMENT'. You'll have to come up with a one-word tag > describing > the functionality that your .cc file provides. See the end of > 'elements/userlevel/fakepcap.cc' for an example; it looks like this: > ... > CLICK_ENDDECLS > ELEMENT_REQUIRES(userlevel|ns) > ELEMENT_PROVIDES(FakePcap) > Elements that use the 'FakePcap' functionality explicitly require it > with ELEMENT_REQUIRES; see 'elements/userlevel/fromdump.cc' for an > example./ > > > I followed this example, but I get a whole bunch of linker errors. > Does > anyone have some experience with this? > The files on which I tried this used to be the include and lib map > and > they didn't cause any problems. > > Thanks, > > Nele Gheysens > > -- > Nele Gheysens > Ghent University - IBCN > Department of Information Technology > Gaston Crommenlaan 8 bus 201 > 9050 Gent, Belgium > E-mail: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > Tel. +32 9 33 14981 > secr.: +32 (0) 9 33 14900 > fax : +32 (0) 9 33 14899 > WWW: http://www.ibcn.intec.UGent.be > _______________________________________________ > click mailing list > [email protected] <mailto:[email protected]> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click > > -- Nele Gheysens Ghent University - IBCN Department of Information Technology Gaston Crommenlaan 8 bus 201 9050 Gent, Belgium E-mail: [EMAIL PROTECTED] Tel. +32 9 33 14981 secr.: +32 (0) 9 33 14900 fax : +32 (0) 9 33 14899 WWW: http://www.ibcn.intec.UGent.be _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
