Hello, I've been bitten by a similar problem as Frank is reporting (using 3.10/01). Would it be possible to either remove ProcessCut [and Fill] from the header generated by MakeSelector, or add definitions to the generated source? Thanks, Clark On Fri, 2003-10-10 at 12:21, Rene Brun wrote: > Hi Frank, > > In your selector.h you have teh definition of the prototypes: > Bool_t ProcessCut(Int_t entry); > void ProcessFill(Int_t entry); > > but you do not have the corresponding implementation in selector.C. > Simply comment the two lines above in selector.h and you should be able to run. > ProcessCut and ProcessFill are not necessary anymore as of version 3.10/01. > > Rene Brun > > Frank Winklmeier wrote: > > > > Hi Rene, > > > > since I was wondering if the problem occurs as well with another gcc I > > tried the following configuration: Red Hat 9.0 + Root 3.10-01 RH9 binaries > > + gcc 3.2.2 > > > > Now I don't get a core dump but still it doesn't work: > > > > root [1] chain.Process("selector.C+") > > Info in <TUnixSystem::ACLiC>: creating shared library > > /home/frank/analysis/./selector_C.so > > In file included from /home/frank/analysis/file2W2ZxW.h:29, > > from /home/frank/analysis/file2W2ZxW.cxx:13: > > /home/frank/analysis/selector.C: In member function `virtual void > > selector::Begin(TTree*)': > > /home/frank/analysis/selector.C:28: warning: unused parameter `TTree*tree' > > /home/frank/analysis/selector.C: In member function `virtual Bool_t > > selector::Process(int)': > > /home/frank/analysis/selector.C:51: warning: unused parameter `Int_t > > entry' > > dlopen error: /home/frank/analysis/./selector_C.so: undefined symbol: > > _ZN8selector10ProcessCutEi > > Load Error: Failed to load Dynamic link library > > /home/frank/analysis/./selector_C.so > > In file included from /home/frank/analysis/file2W2ZxW.h:29, > > from /home/frank/analysis/file2W2ZxW.cxx:13: > > /home/frank/analysis/selector.C: In member function `virtual void > > selector::Begin(TTree*)': > > /home/frank/analysis/selector.C:28: warning: unused parameter `TTree*tree' > > /home/frank/analysis/selector.C: In member function `virtual Bool_t > > selector::Process(int)': > > /home/frank/analysis/selector.C:51: warning: unused parameter `Int_t > > entry' > > /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In > > function `_start': > > ../sysdeps/i386/elf/start.S:77: undefined reference to `main' > > /home/frank/analysis/./file2W2ZxW.o(.gnu.linkonce.d._ZTV8selector+0xfc): > > undefined reference to `selector::ProcessCut(int)' > > /home/frank/analysis/./file2W2ZxW.o(.gnu.linkonce.d._ZTV8selector+0x100): > > undefined reference to `selector::ProcessFill(int)' > > collect2: ld returned 1 exit status > > *** Interpreter error recovered *** > > Error in <TSelector::GetSelector>: file selector.C+ does not have a valid > > class deriving from TSelector > > (Int_t)(-1) > > > > I attatched the selector.C and .h file. > > > > Thanks > > Frank Winklmeier > > > > On Fri, 10 Oct 2003, Rene Brun wrote: > > > > > Frank, > > > > > > Could you send me your selector.h and selector.C files ? > > > > > > Rene Brun > > > > > > On Thu, 9 Oct > > > 2003, Frank Winklmeier wrote: > > > > > > > Hi, > > > > > > > > I always get a core dump when I am trying to run an analysis macro that > > > > was created via MakeSelector() in the compiled mode. > > > > > > > > First I loaded some root files into a chain and then I did the following > > > > commands: > > > > > > > > root [1] chain.MakeSelector("selector") > > > > Info in <TTreePlayer::MakeClass>: Files: selector.h and selector.C > > > > generated from Tree: h45 > > > > (Int_t)0 > > > > root [2] chain.Process("selector.C") > > > > (Int_t)0 > > > > root [3] chain.Process("selector.C+") > > > > > > > > Warning in <ACLiC>: script has already been loaded in interpreted mode > > > > Warning in <ACLiC>: unloading /home/frank/analysis/./selector.C and > > > > compiling it > > > > Info in <TUnixSystem::ACLiC>: creating shared library > > > > /home/frank/analysis/./selector_C.so > > > > Note: Link requested for undefined class TBrowser (ignore this message) > > > > FILE: LINE:0 > > > > Note: Link requested for undefined class TMethod (ignore this message) > > > > FILE: LINE:0 > > > > Note: Link requested for undefined class TTimer (ignore this message) > > > > FILE: LINE:0 > > > > > > > > [...] > > > > > > > > Note: Link requested for undefined class TMatrix (ignore this message) > > > > FILE: LINE:0 > > > > Note: Link requested for undefined class TMatrixD (ignore this message) > > > > FILE: LINE:0 > > > > Error in <ACLiC>: Dictionary generation failed with a core dump! > > > > Error in <TSelector::GetSelector>: file selector.C+ does not have a valid > > > > class deriving from TSelector > > > > (Int_t)(-1) > > > > root [4] > > > > > > > > > > > > So, the program is running in interpreted mode but not in the compiled > > > > version. Do I miss any steps before I can run the program in the compiled > > > > version? Remember, I did not change anything in the files selector.C and > > > > .h between the generation and the run. > > > > I am using RooT 3.10-01 and gcc 2.95.3 on Mandrake 8. > > > > > > > > Thanks for your help. > > > > Frank > > > > > > > > > > > -------------------------------------------------------------------------------- > > Name: selector.h > > selector.h Type: Plain Text (TEXT/PLAIN) > > Encoding: BASE64 > > > > Name: selector.C > > selector.C Type: Plain Text (TEXT/PLAIN) > > Encoding: BASE64 -- Clark McGrew Univ. at Stony Brook, Physics and Astronomy <clark.mcgrew@sunysb.edu> 631-632-8299
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET