ROOT version: 6.24/06
Platform: Debian 10 (buster) singularity container on native Debian 11 5.10.0-21-amd64
Compiler: from source, unknown
I have an application which requires I/O of custom classes to a ROOT file. I make a ROOT dictionary using rootcling in a GNU Makefile and use the dictionary to create a shared library. The program which writes to a ROOT file links the object file generated from the ROOT dictionary, it does not load the library. Once built, everything is installed in some top-level install directory: executables in /bin, libraries, rootmap and pcm files in /lib, headers in /include.
If I run the installed code, I see the following:
Error in TCling::LoadPCM: ROOT PCM /user/chester/ddastoys/bin/DDASRootFit_rdict.pcm file does not exist
Info in TCling::LoadPCM: In-memory ROOT PCM candidate /usr/opt/root/root-6.24.06/lib/libASImageGui_rdict.pcm
Info in TCling::LoadPCM: In-memory ROOT PCM candidate /usr/opt/root/root-6.24.06/lib/libASImage_rdict.pcm
Info in TCling::LoadPCM: In-memory ROOT PCM candidate /usr/opt/root/root-6.24.06/lib/libEG_rdict.pcm
…
More in-memory candidates
…
This error is correct - the file it is looking for is /user/chester/ddastoys/lib/DDASRootFit_rdict.pcm. I have found two other forum posts which suggest that LD_LIBRARY_PATH is searched for .pcm files (Cannot find my rdict.pcm files and gSystem->Load problem pcm files not found). I can:
export LD_LIBRARY_PATH=/user/chester/ddastoys/lib:$LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
and verify that /user/chester/ddastoys/lib is in the LD_LIBRARY_PATH. This does not fix the error. If I symlink the .pcm file in the /bin directory, the code runs without warnings.
Any help would be appreciated.