opening a shared object / failing with Undefined Symbol.
keramida at ceid.upatras.gr
Sat Mar 26 23:31:19 UTC 2011
On Tue, Mar 22, 2011 at 2:28 PM, Jim <stapleton.41 at gmail.com> wrote:
> I have an application that opens two .so files with dlopen(3):
> Both files exist
> Running nm(1) against each produces a lot of output, showing all the
> symbols I know to exist in each library.
> My application gets a null return from dlopen on the libag_gui.so.
> dlerror produces the following string:
> "/usr/local/lib/libag_gui.so Undefined symbol "agTimingLock"
> $ nm /usr/local/lib/libag_gui.so | grep agTiming
> U agTimingLock
> I'm guessing that means that agTimingLock is used in that library but
> not defined?
> $ nm /usr/local/lib/libag_core.so | grep agTiming
> 0000000000141c00 B agTimingLock
> And this would mean that it is defined in libag_core.so?
Yes, but it's in the uninitialized data section:
% man nm
"b" The symbol is in the uninitialized data section (known as BSS).
What is the "ag" library? Which version are you using? What sort of
dlopen() call did you try to run?
More information about the freebsd-questions