building classes into root.

From: Stephen_Eichblatt (eichblat@fibb01.fnal.gov)
Date: Tue Dec 23 1997 - 05:06:43 MET


Hi,

I am trying to build a class into root. I am running on Linux, root 1.03/06.

The event class is called "event" and it has a "hit" object as a member.
This is analogous to the example in the test directory in the distribution.

I find that i must put the headers for both classes in the same file,
and also i must put the event.cc and hit.cc files together.

If i don't, i get compilation errors like:

eventDict.o: In function `G__hit_hit_0_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0xef): undefined reference to `hit::hit(void)'
eventDict.o(.text+0x13e): undefined reference to `hit::hit(void)'
eventDict.o: In function `G__hit_read_1_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0x1e4): undefined reference to `hit::read(int)'
eventDict.o: In function `G__hit_ImplFileName_4_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0x2b1): undefined reference to `hit::ImplFileName(void)'
eventDict.o: In function `G__hit_ImplFileLine_5_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0x2f1): undefined reference to `hit::ImplFileLine(void)'
eventDict.o: In function `G__hit_Class_7_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0x371): undefined reference to `hit::Class(void)'
eventDict.o: In function `G__hit_Dictionary_8_0__FP8G__valuePcP8G__parami':
eventDict.o(.text+0x3bd): undefined reference to `hit::Dictionary(void)'
eventDict.o: In function `operator>>(TBuffer &, hit *&)':
eventDict.o(.text+0x1f52): undefined reference to `hit::Class(void)'
eventDict.o: In function `hit::IsA(void) const':
eventDict.o(.text+0x2555): undefined reference to `hit::Class(void)'
/tmp/cca008011.o: In function `event::event(void)':
/home/eichblat/root-macro/treeTest/mcEvents/event.cc:9: undefined reference to `hit::hit(void)'

I am making the eventDict files with the following command:

eventDict.cc : event.cc event.h LinkDef.h
        $(ROOTCINT) -f $@ -c event.h hit.h LinkDef.h

where LinkDef.h says :

#ifdef __CINT__

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ class hit;
#pragma link C++ class event;

#endif

I really don't know what i am doing, but i would like to separate the source
code into separate files. Any help would be appreciated. 

Thanks!

Steve Eichblatt
eichblatt@fnal.gov



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:23 MET