Hi Davide,
>From your description you get:
root[4] Roottree.Process("test.C+"); //or ("test.C++");
Info in <TUnixSystem::ACLiC>: creating shared library
/users/dgrandi/./test_C.so
Error: link requested for unknown class TrRecHitRoot02
FILE:/users/dgrandi/demo/LinkDef.h LINE:24
This would happen if
test.h or test.C includes (directly or indirectly) a LinkDef.h file
or
there is a file named test_linkdef.h which includes LinkDef.h
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Davide Grandi
Sent: Tuesday, March 18, 2003 11:48 AM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] ACLiC error
Dear root family,
I use root version 3.05.02 on Linux RH 7.2 on a double processor
2.00GHz machine.
I'm reading a tree with TCloneArrays, TRef and TRefArrays. So:
1) I load the tree
root[0] TFile *f = new TFile("tree.root");
2) and root warns about dictionary as for example
Warning in <TClass::TClass>: no dictionary for class TrRecHitRoot02 is
available
3) I generate the dictionary and shared lib and dynamically link it
root [1] f.MakeProject("demo","*","recreate++");
demo/MAKE file has been generzted
Shared lib demo/demo.so has been generated
Shared lib demo/demo.so has been dynamically linked
4) then I create with MakeSelector a test.C and test.h file
root [2] Roottree->MakeSelector("test");
Info in <TTreePlayer::MakeClass>: Files: test.h and test.C generated
from Tree: Roottree
5) I include all files *.h of dir demo/ in test.h. Then I run
root [3] Roottree.Process ("test.C"))
on the tree simply doing for example in Processfill
fChain->GetTree()->GetEntry(entry);
cout << entry << endl;
And everything works fine.
6) But if I try to use ACLiC as
root[4] Roottree.Process("test.C+"); //or ("test.C++");
I got
Info in <TUnixSystem::ACLiC>: creating shared library
/users/dgrandi/./test_C.so
and immediately the following error:
Error: link requested for unknown class TrRecHitRoot02
FILE:/users/dgrandi/demo/LinkDef.h LINE:24
with final result
Warning: Error occured during reading source files
Warning: Error occured during dictionary source generation
!!!Removing /users/dgrandi/./fileuvnwjO.cxx
/users/dgrandi//./fileuvnwjO.h !!!
Error: rootcint: error loading headers...
Error in <ACLiC>: Dictionary generation failed!
Error in <TSelector::GetSelector>: file test.C+ does not have a valid
class deriving from TSelector
Does someone have an idea why I got this link error (after creating shared
lib and having linked it....) and how to avoid it?
Thank You in advance
Cheers
Davide
**********************************************************************
$ Davide Grandi %
$ INFN Milano e-mail Davide.Grandi@mib.infn.it %
$ P.zza delle Scienze 3 phone +39 02 6448 2306 %
$ 20126 MILANO fax +39 02 6448 2367 %
$ ITALY %
$ %
$ at CERN e-mail Davide.Grandi@cern.ch %
$ CH-1211 Geneve CH phone +41 22 767 9403 %
$ Bldg. 506 room R018 %
$ or phone +41 22 767 7560 %
$ Bldg. 576 room R002 %
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET