root [0] .L whatToHell.cpp++
Info in <TUnixSystem::ACLiC>: creating shared library /home/assova/source/daq/dbr/./whatToHell_cpp.so
root [1] hell()
ok iostream
root [2] gSystem->Load("libTreePlayer");
root [3]
lost?!
root [0] .L whatToHell.cpp++
Info in <TUnixSystem::ACLiC>: creating shared library /home/assova/source/daq/dbr/./whatToHell_cpp.so
root [1] hell()
ok iostream
root [2] gSystem->Load("libTreePlayer");
root [3]
lost?!
ok.
now we know that
ACLiC works in some cases
libTreePlayer is loadable
if ACLiC tries to link with libTreePlayer, it does not work.
What is the command line used by ACLiC to compiler in the case where testing.cxx (whatToHell.cpp) contains a reference to TTreeFormula.
Philippe.
Info in <ACLiC>: compiling the dictionary and script files
Info in <ACLiC>: cd /home/assova/source/daq/dbr/. ; CC -c -O -KPIC -I/usr/openwin/include -ptr/home/kammer/ROOT/compile/root -Iinclude -I$ROOTSYS/include -I"/opt2/ROOT.5.08.00-SunOS5.10/include" -I/home/assova/source/daq/dbr/. -I/home/assova/source/daq/dbr /home/assova/source/daq/dbr/./aaaryaWBd.cxx ; CC /home/assova/source/daq/dbr/./aaaryaWBd.o -G -ptr/home/kammer/ROOT/compile/root -O /opt2/ROOT.5.08.00-SunOS5.10/lib/libGX11.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libGui.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libGX11TTF.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libMinuit.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libPostscript.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libHtml.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libTreePlayer.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libCore.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libCint.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libHist.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libGraf.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libGraf3d.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libGpad.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libTree.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libMatrix.so /opt2/ROOT.5.08.00-SunOS5.10/lib/libRint.so -o /home/assova/source/daq/dbr/./whatToHell_cpp.so
Info in <TPluginManager::FindHandler>: did not find plugin for class TSystem and uri /home/assova/source/daq/dbr/./whatToHell_cpp.so
Info in <ACLiC>: loading the shared library
dlopen error: ld.so.1: /opt2/ROOT.5.08.00-SunOS5.10/bin/root.exe: fatal: relocation error: file /opt2/ROOT.5.08.00-SunOS5.10/lib/libTreePlayer.so: symbol __1cDstdNbasic_ostream4Ccn0ALchar_traits4Cc___2l6MX_r1_: referenced symbol not found
Load Error: Failed to load Dynamic link library /home/assova/source/daq/dbr/./whatToHell_cpp.so
But one line up
Info in <TCint::AutoLoadCallback>: loaded library libTreePlayer.so for class TTreePlayer
Info in <TUnixSystem::Load>: loaded library /opt2/ROOT.5.08.00-SunOS5.10/lib/libTreePlayer.so, status 0
Info in <ACLiC>: compiling the dictionary and script files
I still do not know why it does not work (but it might have to do with the way the compiler is handling the template instantiation
… without access to the machine I would not be able to investigate further) but I think the following would make the problem disappear:TString cmd = gSystem->GetMakeSharedLib();
cmd.ReplaceAll("$LinkedLibs","");
gSystem->SetMakeSharedLib(cmd);(to be issued once per session before the first ACLiC command.
Cheers,
Philippe
Thank you, Philippe,
it does the job but I still do not understand all of it.
Cheers, Galina