Re: dictionary generation

Andy Haas (root_news@yahoo.com)
Wed, 5 Aug 1998 14:07:43 -0700 (PDT)


---Robert Loke <loke@ifh.de> wrote:
>
> Hi Rooters!
>
> Using the Event-class as given in one of the examples on the root -
> homepage, a problem concerning the dictionary generation or usage
occurs, when
> using a SGI running Irix 6.2 and gcc version 2.7.2.1 together with
> root 2.00/09.
>
> Applying rootcint to this file, I receive a message
>
> "Note: operator new() masked 1c"
>
> which is regarded to be harmless - at least some time ago (does this
> still hold?). Afterwards, I compile the generated file and link the
> obejct file to my application. All happens without any error message
> or similar output. Starting the process, I receive a message
>
> Warning in <TClass::TClass>: no dictionary for class Event available
>
> which turns out to have a rather nasty reason, since ignoring this
> message leads to a segmentation violation when touching an instance of
> this class first.
>
> Can somebody give me a hint about the origin of this error and how to
> avoid this?
>
> Thanks, Robert
>

Sounds to me like you forgot to also do:

rootcint -f test.C -c event.h linkdef.h

The -f is just for overwriting/creating the .C file in cast it
does/n't exist. The -c option however creates, in addition to the
streamer, buffer, etc. functions a lot of definitions and declarations
which must also be included in a project so that TROOT can make a
dictionary of which classes are being used...

Good luck, I struggled with that same thing for a while before I
stumbled on the solution. I've been meaning to write up a small
tutorial on the subject since existing documentation is shady at best
and it's a very important topic!

Cheers,
Andrew Haas
University of Washington
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com