Dear All,
I prepare files named MySelector.C, MySelector.h in order to process my rootfile using Proof.
MySelector is perfectly working except that I was stack at the step to load custom classes within MySelector since I call :
gProof->Process("MySelector.C+")
I managed to make it works adding (thanks this thread How to add an user class to TSelector::fOutput?):
gProof->Load("$LIBPATH/MyCustomClass.C+")
But this do not satisfy me because I use a library.so file and would prefere to directly load my library and include my headers to be used in my selector…
Since that I would like to create my PAR archive and put MySelector files inside.
I create a project using :
TFile *_file0 = TFile::Open("mytree.root");
_file0->MakeProject("packages/MySelectorPAR", "*", "par");
I played a little bit with the generated archive and implement MySelector files, thanks to Proof ARchive and undefined symbol: _ZTI4TH1F
So the status is that it is trying to generate a Dictionary and I added the location of my custom classes, library and headers. And I get an error… I think I made a mistake in my Makefile…
/usr/lib/../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
MySelector.o: In function `MySelector::Begin(TTree*)':
MySelector.C:(.text+0xb1): undefined reference to `TString::TString(char const*)'
MySelector.C:(.text+0xfb): undefined reference to `TDatime::Set()'
MySelector.C:(.text+0x11f): undefined reference to `TDatime::Print(char const*) const'
MySelector.C:(.text+0x12b): undefined reference to `TString::~TString()'
MySelector.C:(.text+0x138): undefined reference to `TObject::operator delete(void*)'
MySelector.C:(.text+0x152): undefined reference to `TString::~TString()'
MySelector.o: In function `MySelector::SlaveBegin(TTree*)':
MySelector.C:(.text+0x1a4): undefined reference to `TString::TString(char const*)'
MySelector.C:(.text+0x1d4): undefined reference to `TH1D::TH1D(char const*, char const*, int, double, double)'
MySelector.C:(.text+0x1e4): undefined reference to `TDirectory::CurrentDirectory()'
MySelector.C:(.text+0x229): undefined reference to `TDirectory::CurrentDirectory()'
MySelector.C:(.text+0x25d): undefined reference to `TString::~TString()'
MySelector.C:(.text+0x26a): undefined reference to `TObject::operator delete(void*)'
MySelector.C:(.text+0x27e): undefined reference to `TString::~TString()'
MySelector.o: In function `MySelector::SlaveTerminate()':
MySelector.C:(.text+0x334): undefined reference to `TDatime::Set()'
MySelector.C:(.text+0x349): undefined reference to `TDatime::Print(char const*) const'
MySelector.C:(.text+0x39d): undefined reference to `TDatime::Convert(bool) const'
MySelector.C:(.text+0x3b4): undefined reference to `TDatime::Convert(bool) const'
MySelector.C:(.text+0x40d): undefined reference to `TDatime::Convert(bool) const'
MySelector.C:(.text+0x424): undefined reference to `TDatime::Convert(bool) const'
So I attached a par file, just before having try to add my library… I just setup the .C and .h files and added the CXXFLAGS and LIBUIUC (path to my library named libUIUC.so)
Tree1.par (60 KB)