I work with Root 6.10/09
When compiling I encounter this error related to TUnfoldDensity::GetFoldedOutput():
/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/gcc/6.3.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/6.3.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /tmp/vveckaln/cczzhXv7.o: undefined reference to symbol '_ZNK14TUnfoldDensity15GetFoldedOutputEPKcS1_S1_S1_bb'
/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/lib/libUnfold.so: error adding symbols: DSO missing from command line
I try
readelf -s /cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/lib/libUnfold.so | grep GetF
and it shows GetFoldedOutput()
is associated TUnfold
:
653: 000000000001a890 752 FUNC GLOBAL DEFAULT 12 _ZNK7TUnfold15GetFoldedOu
293: 000000000001a890 752 FUNC GLOBAL DEFAULT 12 _ZNK7TUnfold15GetFoldedOu
Is that fine?
I wander why the compiler looks for libUnfold.so
in
/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/lib/
not
root-config --libdir
/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/bin/../../../../../../../slc7_amd64_gcc630/lcg/root/6.10.08-fmblme2/lib
Previously I worked with Root 6.06/01 and I did not encounter this problem. There TUnfoldDensity
is referenced in a completely different library libHist.so
:
grep TUnfoldDensity `root-config --libdir`/*.so
Binary file /cvmfs/cms.cern.ch/slc6_amd64_gcc530/cms/cmssw-patch/CMSSW_8_0_26_patch1/external/slc6_amd64_gcc530/bin/../../../../../../../slc6_amd64_gcc530/lcg/root/6.06.00-ikhhed6/lib/libHist.so
Could you please help?
Please read tips for efficient and successful posting and posting code
ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided
moneta
December 7, 2020, 10:25am
2
Hi,
I think there are some configuration problem. I would try to do a clean build removing any reference to other ROOT versions in your LD_LIBRARY_PATH and PATH
Lorenzo
Hi!
It doesn’t seem so:
echo $LD_LIBRARY_PATH
/afs/cern.ch/work/v/vveckaln/private/CMSSW_9_4_11/biglib/slc7_amd64_gcc630:/afs/cern.ch/work/v/vveckaln/private/CMSSW_9_4_11/lib/slc7_amd64_gcc630:/afs/cern.ch/work/v/vveckaln/private/CMSSW_9_4_11/external/slc7_amd64_gcc630/lib:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/biglib/slc7_amd64_gcc630:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/lib/slc7_amd64_gcc630:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/lib:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/llvm/4.0.1/lib64:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/gcc/6.3.0/lib64:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/gcc/6.3.0/lib
[vveckaln@lxplus729 UnfoldingLIB]$ echo $PATH
/cvmfs/cms.cern.ch/share/overrides/bin:/afs/cern.ch/work/v/vveckaln/private/CMSSW_9_4_11/bin/slc7_amd64_gcc630:/afs/cern.ch/work/v/vveckaln/private/CMSSW_9_4_11/external/slc7_amd64_gcc630/bin:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/bin/slc7_amd64_gcc630:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/bin:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/llvm/4.0.1/bin:/cvmfs/cms.cern.ch/slc7_amd64_gcc630/external/gcc/6.3.0/bin:/afs/cern.ch/user/v/vveckaln/AN/AN-17-309/utils:/afs/cern.ch/cms/caf/scripts:/cvmfs/cms.cern.ch/common:/usr/sue/bin:/usr/lib64/qt-3.3/bin:/usr/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/puppetlabs/bin:/afs/cern.ch/user/v/vveckaln/bin
[vveckaln@lxplus729 UnfoldingLIB]$ which root
/cvmfs/cms.cern.ch/slc7_amd64_gcc630/cms/cmssw/CMSSW_9_4_11/external/slc7_amd64_gcc630/bin/root
Viesturs
I managed to fix by adding a separate statement
Lroot-config --libdir
-lUnfold -pthread -lm -ldl -rdynamic -Wl,-rpath,`root-config --libdir
in the Makefile.
Why wasn’t root-config --libs --cflags
sufficient?
moneta
December 8, 2020, 8:18am
5
root-config --libs
defines only a subset of ROOT libraries, not all of them. For example if using TMVA or roofit you need to add them explicitly.
Please next time make it clear that you were not compiling ROOT but an application based on ROOT.
Best regards
Lorenzo
It was not necessary to indicate separately libUnfold.so
in Root 6.06/01.
moneta
December 8, 2020, 8:38am
7
Yes, in ROOT 6.06 TUnfold was part of libHist, so there was no libUnfold. Apologies for this inconvenience.
system
Closed
December 22, 2020, 8:52am
8
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.