Re: undefined symbols

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Fri, 10 Oct 2008 10:52:10 -0500


Hi,

You will either need to load the dependent library by hand in the right order or
write a rootmap file for each of your library. For example the rootmap file for libDst would be a file name libDst.rootmap (located
in the same directory as libDst.so) containing something like:

Library.MyClassName: libOtherLibrary.so

where libOtherLibrary.so is the name of the library where TDataBank is defined.

Cheers,
Philippe.

PS You can also generate the rootmap file automatically if you have linkdef files
by using the rlibmap utility:

rlibmap
Usage: rlibmap [-f] [<-r|-o> <mapfile>] -l <sofile> -d <depsofiles> -c <linkdeffiles>

Justin Findlay wrote:
> I'm trying to load a preexisting library into root, but I'm getting
> the following error:
>
> root [0] gSystem->Load("libDst");
> dlopen error: /home/findlay/src/croot/lib/libDst.so: undefined symbol:
> _ZNK9TDataBank5TDumpEPKc
> Load Error: Failed to load Dynamic link library
> /home/findlay/src/croot/lib/libDst.so
>
> I am unsure how to resolve this. The undefined symbol refers to
> another library in the same source tree. Do I need to add some
> compiler or linker flags, or manually account for all symbols used in
> the shared library somehow?
>
>
> Justin
>
>
Received on Fri Oct 10 2008 - 17:53:15 CEST

This archive was generated by hypermail 2.2.0 : Sat Oct 11 2008 - 05:50:03 CEST