Hard-coded Library Directories?


I am trying to use the latest OS/X version of Root, downloaded as root_v4.01.02.Darwin.7.5.0.tar.gz. When I attempt to link against the Root libraries, they link with a path such as /Users/rdm/root/lib/libCore.dylib, which doesn’t exist on my machine. I don’t have this path specified anywhere. Is there any way to fix this short of recompiling Root altogether? I have temporarily made a soft link via ‘ln -s /usr/local /Users/rdm’ in order to trick the libraries into pointing to the right place.

The strange part is that I didn’t get a linking error until I used something with the Minuit library. I’m not sure if that is important.



Using my trick fix above (making a soft link to the right place), I now get the error:

Warning in TClass::TClass: no dictionary for class TPluginHandler is available
Error in TPluginHandler::SetupCallEnv: class TGX11 not found in plugin GX11
Error in TPluginHandler::SetupCallEnv: class TRootGuiFactory not found in plugin Gui

*** Break *** bus error

*** Break *** segmentation violation

when running my program. I’ve seen this with several versions of Root on OS/X, but the code works fine on several versions of Linux (for which it was originally written).

Here are the results of my make:

g++ -I. -Wall -I/usr/stacee/src/include -I/sw/include/mysql -D_REENTRANT -I/sw/include -I/usr/local/root/include -O0 -ggdb -c stoff_pair_test2.cpp
/usr/stacee/src/include/Timing.h:44: warning: `int SLIDING_GATE_NARROW_NS’
defined but not used
g++ -I. -Wall -I/usr/stacee/src/include -I/sw/include/mysql -D_REENTRANT -I/sw/include -I/usr/local/root/include -O0 -ggdb -o stoff_pair_test2 stoff_pair_test2.o -L/usr/stacee/src/lib -lStoff++ -lstoff_pair -lpair_checker -lPass0 -lWaveform -u _G__cpp_setupG__X11 -lGX11 -L/usr/local/root/lib -Wl,-u,_G__cpp_setupG__Hist -Wl,-u,_G__cpp_setupG__Graf1 -Wl,-u,_G__cpp_setupG__G3D -Wl,-u,_G__cpp_setupG__GPad -Wl,-u,_G__cpp_setupG__Tree -Wl,-u,_G__cpp_setupG__Rint -Wl,-u,_G__cpp_setupG__PostScript -Wl,-u,_G__cpp_setupG__Matrix -Wl,-u,_G__cpp_setupG__Physics -Wl,-u,_G__cpp_setupG__Gui1 -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lfreetype -lGui -lpthread -lm -L/sw/lib -ldl

I added the “-u _G__cpp_setupG__X11 -lGX11” myself, but it didn’t help.

Thanks for your help,

Hi Don,

this problem has been fixed in the cvs version of ROOT. Future binary versions will work as expected, but for now you will have to rebuild from source.

Cheers, Fons.

Which problem? I assume you mean the library location one. Is the bus error/segmentation fault a familiar error?

Thanks for your timely reply,