Hello everybody! I think I have a makefile/linking problem with using ROOT classes as part of a Geant4 simulation. I'm using a "Recorder class" to collect informations from the simulation in order to write histograms and save the information in a ROOT Tree. For transfer the information to the Recorder class and also for filling the tree, I use my own Event class, named BBRootEvent, derived from TObject very similar to the Event class from the tutorials. In order to tell Geant4 that I'm using ROOT I added CPPFLAGS += `root-config --cflags` LDFLAGS += `root-config --nonew --libs` to my Geant4 makefile. Compiling the whole program works fine, but when trying to link the object files, I get the following message: Creating/replacing object files in /home/cdoerr/geant4/tmp/Linux-g++/betabeta/libbetabeta.a Using global libraries. Linking betabeta ... /home/cdoerr/geant4/tmp/Linux-g++/betabeta/libbetabeta.a(BBRootEvent.o): In function `basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > type_info function': /home/cdoerr/geant4/betabeta/include/BBRootEvent.hh(.text+0x1f): undefined reference to `BBRootEvent::Class_Name(void)' /home/cdoerr/geant4/tmp/Linux-g++/betabeta/libbetabeta.a(BBRootEvent.o): In function `BBRootEvent::BBRootEvent(void)': /home/cdoerr/geant4/betabeta/src/BBRootEvent.cc:18: undefined reference to `BBRootEvent::ShowMembers(TMemberInspector &, char *)' /home/cdoerr/geant4/betabeta/src/BBRootEvent.cc:18: undefined reference to `BBRootEvent::Streamer(TBuffer &)' /home/cdoerr/geant4/tmp/Linux-g++/betabeta/libbetabeta.a(BBRootEvent.o): In function `basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > type_info function': /home/cdoerr/geant4/betabeta/include/BBRootEvent.hh(.BBRootEvent::gnu.linkonce.t.StreamerNVirtual(TBuffer &)+0x12): undefined reference to `BBRootEvent::Streamer(TBuffer &)' collect2: ld returned 1 exit status make: *** [/home/cdoerr/bin/Linux-g++/betabeta] Error 1 Everything (except for writing the TTree) works fine if I omit the line ClassDef(BBRootEvent,1) //BBRootClass I don't know anything about linking and very little about makefiles, so I'd be really happy for any kind of advice to solve this problem.... Thanks a lot!! Cheers, Christian ----------------------------------------------------------- Christian Doerr Max-Planck-Institut fuer Kernphysik, Heidelberg Bothe-Labor, room 232 phone: +49-6221-516-259 email: C.Doerr@mpi-hd.mpg.de www.christiandoerr.de -----------------------------------------------------------
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:50 MET