Unable to Run TUnfold 17.9 version with root 6.24

Dear expert,
I am previously using TUnfold 17.9[1] with root V6.18 and it was working fine on Ubuntu 20.04 LTS.

But on Ubuntu 22.04 LTS, I am unable to compile TUnfold 17.9 with root 6.24 to 6.28 . I am not able to check bellow root version. since those are not successfully get install on this new Ubuntu version.

Now when I am compiling those TUnfold 17.9 it getting failed with the following error [2].

[1] Stefan Schmitt, about TUnfold
[2] suman@Suman-Swift:~/HEPPackage/TUnfold_V17.9$ make bin c++ -isystem /usr/local/include -I/htmldoc -I. -O2 -g -Wall -Wshadow -W -Woverloaded-virtual -fPIC -pthread -std=c++17 -m64 -I/usr/local/include testunfoldmain1.C -o testunfoldmain1 testUnfold1.o -m64 -L. -Wl,-rpath . -L/home/suman/HEPPackage/TUnfold_V17.9/ -lunfold -lunfold \ -L/usr/local/lib -lXMLParser -L/usr/local/lib -lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTVecOps -lTree -lTreePlayer -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lMultiProc -lROOTDataFrame -pthread -lm -ldl -rdynamic /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldBinningV17::Class()’
/usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldDensityV17::Streamer(TBuffer&)' /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldIterativeEMV17::Streamer(TBuffer&)’
/usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldV17::Streamer(TBuffer&)' /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldSysV17::Streamer(TBuffer&)’
/usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldBinningV17 const*)' /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldBinningV17::Streamer(TBuffer&)’
/usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldV17 const*)' /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldIterativeEMV17::Class()’
/usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldSysV17::Class()' /usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldIterativeEMV17 const*)’
/usr/bin/ld: ./libunfold.so: undefined reference to vtable for TUnfoldBinningXMLV17' /usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldV17::Class()’
/usr/bin/ld: ./libunfold.so: undefined reference to TUnfoldDensityV17::Class()' /usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldSysV17 const*)’
/usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldDensityV17 const*)' /usr/bin/ld: ./libunfold.so: undefined reference to ROOT::GenerateInitInstance(TUnfoldBinningXMLV17 const*)’
collect2: error: ld returned 1 exit status
make: *** [Makefile:246: testunfoldmain1] Error 1

Could it be fixed ?

Hi @Sumankkundu,
thanks for reaching out!
As of ROOT version 5.22, TUnfold is included in the ROOT package (here you can find the documentation). Is there a reason why you need to install standalone TUnfold?



I wanted to clarify that my choice to use the standalone version of TUnfold was primarily driven by the need to utilize the latest version, TUnfold 17.9. This version worked seamlessly with my previous setup.

However, I’ve encountered compatibility issues when attempting to use a lower version, TUnfold 17.6, with root files that are saved based on class definitions or names specific to TUnfold 17.9.

In light of this, it would be greatly appreciated if the standalone TUnfold package could be made functional, as it would help address these compatibility challenges.

Thank you for your assistance.


Looking at your error message, it seems that linking of the libunfold.so is the issue. Did you check that compilation and linking of the package is o in directory


I confirm that I’m adhering to the recommendations provided for linking and compiling with TUnfold_V17.9.
Is there a specific method for verifying the correctness of my setup?