Hi, I am developing a GUI program. It is compile as an executable program named Cubix. Since now, I was using root 6.10.06 and all was working perfectly. I moved to the root 6.14.06 and I have now errors at the execution. Root is looking for the library libCubix.so (but I never generated it before). Here is the error message I have:
Error in TUnixSystem::FindDynamicLibrary: libCubix.so does not exist in /opt/root/lib:/opt/tensorflow/lib:/.singularity.d/libs:/home/dudouet/Softs/test/lib:.:/opt/root/lib:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu:/lib/tls/x86_64:/lib/tls:/lib/x86_64:/lib:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/x86_64:/usr/lib
IncrementalExecutor::executeFunction: symbol ‘_ZN14CXGFileBrowser11PadModifiedEv’ unresolved while linking symbol ‘__cf_4’!
You are probably missing the definition of CXGFileBrowser::PadModified()
Maybe you need to load the corresponding shared library?
Error in TClingCallFunc::make_wrapper: Failed to compile
==== SOURCE BEGIN ==== #pragma clang diagnostic push #pragma clang diagnostic ignored “-Wformat-security” attribute((used)) extern “C” void __cf_4(void* obj, int nargs, void** args, void* ret)
{
((CXGFileBrowser*)obj)->PadModified();
return;
} #pragma clang diagnostic pop
==== SOURCE END ====
Yes I understand it but it is not the case for root 6-10… Why root is looking at libCubix.so ? Cubix is an executable, not a library. (I am absolutely not an expert in cmake and compilation stuff, so I’m sure that I am doing something wrong, but which was accepted by the older root versions)
It seems that you should link the library where you have the __cf_4 function to your Cubix library, since you need it for the missing symbol mentioned CXGFileBrowser::PadModified(). However, this library may be in a place that ROOT cannot find, therefore the error. Older versions of ROOT did not complain about these missing symbols, so that’s why you probably didn’t see a problem before, but at runtime you’d probably see a failure when the symbol is missing. Cheers,
But I don’t generate any library… only one executable which launch a graphical interface based on many classes. Does it means that I need to compile my package in a different way ?