RE: [ROOT] ACLiC error

From: Philippe Canal (pcanal@fnal.gov)
Date: Tue Mar 18 2003 - 19:20:51 MET


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