Dictionary generation

When trying to move from root 3.05.05 to version 3.10, the generation of the dictionary for my
own classes fails with the following error message:

with version 3.05 it works:
rootcint -f Dict.cxx -c Track.h Linkdef.h
g++ -g -Wall -fPIC -I/afs/cern.ch/sw/root/v3.05.05/rh73_gcc32/root/include -c Dict.cxx

with version 3.10 (and also version 4.xx) I get the following error messages:
rootcint -f Dict.cxx -c Event.h Ladder.h Linkdef.h
[pcephc641] /afs/cern.ch/user/h/helgevos/STtbana > make Dict.o
g++ -g -Wall -fPIC -I/afs/cern.ch/sw/root/v3.10.02/rh73_gcc32/root/include -c Dict.cxx
Dict.cxx:28:26: TVectorProxy.h: No such file or directory
Dict.cxx: In function ROOT::TGenericClassInfo* ROOT::GenerateInitInstance(const RawEvent*)': Dict.cxx:51: no matching function for call toROOT::TGenericClassInfo::
TGenericClassInfo(const char[9], const char[11], int, const std::type_info&,
const ROOT::TInitBehavior*, int, void ()(), TClass()(const void), int,
unsigned int)’

As I don’t really understand how these dictionaries are generated, I’d be most happy if someone has encountered a similar problem and could tell me how this can be fixed
I attatched the code for Track.h, Track.cpp. In real life, the Linkdef file and the command
for the generation of the dictionary includes more classes, also those which are are included in the Track.h…which still results in the same error messages.

Thank you,

       Helge

the Linkdef.h file looks as follows:

#ifdef CINT
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class Track;
#endif
Track.cpp (4.62 KB)
Track.h (3.24 KB)

[quote]rootcint -f Dict.cxx -c Event.h Ladder.h Linkdef.h
[pcephc641] /afs/cern.ch/user/h/helgevos/STtbana > make Dict.o
g++ -g -Wall -fPIC -I/afs/cern.ch/sw/root/v3.10.02/rh73_gcc32/root/include -c Dict.cxx
Dict.cxx:28:26: TVectorProxy.h: No such file or directory
[/quote]
This clearly indicates that the dictionary has been generated with rootcint from version 4 of ROOT. You need to have the appropriate -I (i.e. pointing to ROOT 4). The dictionary are not compatible (at the source level) between ROOT 3 and 4 (and are not guaranteed to be compatible between any version of ROOT … i.e. you should build your dictionary with the correct rootcint)

Cheers,
Philippe.