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