RE: [ROOT] Linking external libraries

From: Philippe Canal (pcanal@fnal.gov)
Date: Fri Oct 01 2004 - 12:28:03 MEST


Hi Salvatore,

Maybe the linker is correct:
  (my_directory)libObjsForRoot.so: undefined symbol: (d's constructor)
And your forgot to implement the constructor for the class d (or maybe you
forgot to generate the dictionary).

Could be as simple as doing:
KCC -O (lots of options for KAI in linux) a.o b.o c.o d.o libMyObjs.so -o
libObjsForRoot.so

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]
On Behalf Of Salvatore Rappoccio
Sent: Wednesday, September 29, 2004 6:18 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] Linking external libraries

Hi,

I have a problem linking an external library in CINT.

I compile several object files

a.o b.o c.o

a.o depends on a class defined in a shared library libMyObjs.so (let's say
class d is in libMyObjs.so).

I now want to make a shared library to load into ROOT of a,b, and c via:

KCC -O (lots of options for KAI in linux) a.o b.o c.o libMyObjs.so -o
libObjsForRoot.so

When I do this in CINT, I get:

/cdf/software/products/root/v3_05_07cKCC_4_0/Linux+2.4/bin/root.exe:
relocation error: 
(my_directory)libObjsForRoot.so: undefined symbol: (d's constructor)

I have loaded both libMyObjs.so and libObjsForRoot.so in the root session
via gSystem->Load("libMyObjs.so") and ("libObjsForRoot.so"), in that order.

Any ideas as to how to get this to work?

Thanks,
Sal Rappoccio



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET