Undefined symbol: TRInt, when loading custom class

I’m trying to load some of our custom classes into python through pyROOT.

I am getting this error message:

>>> gSystem.Load("libJobControl.so")
Message: (file "/...paths.../libJobControl.so", line 1) dlopen error: /...paths.../libJobControl.so: undefined symbol: _ZTI5TRint [typeinfo for TRint]

Now, as far as I understand there is something called rootmaps, that are used for automatic loading, which we don’t have set up for our custom libraries. To get around this, I tried explicitly loading the RInt library beforehand with:

but the error still occurs. I’m at a loss of how to debug this, especially as a similar error for TParticle was fixed by loading libEG.so in this manner. Any ideas?

Nick,

I’d figure that that explicit load should have worked. Perhaps setting the dlopen flags explicitly:

[code]>>> import sys

sys.setdlopenflags( 0x100 | 0x2 )[/code]
to bind immediately and globally helps.

Cheers,
Wim

[quote=“wlav”]I’d figure that that explicit load should have worked. Perhaps setting the dlopen flags explicitly:

[code]>>> import sys

sys.setdlopenflags( 0x100 | 0x2 )[/code]
to bind immediately and globally helps.
[/quote]
hmm, something I hadn’t thought of, but it doesn’t seem to be making a difference - I get the exact same error even though this same sequence of library loads works perfectly fine in CINT.

It’s all very frustrating as I’ve never been especially adept at solving library loading or compatibility problems.

Nick,

can you set the envar LD_DEBUG=symbols and see which files are considered for lookup of the symbol? The output will be huge, so pipe it through grep.

Cheers,
Wim