Re: /libexec/ld-elf.so.1: ... Undefined symbol "_ZN7TMinuitC1Ei"

From: Pierre-Luc Drouin <pldrouin_at_physics.carleton.ca>
Date: Thu, 26 May 2005 13:42:19 -0400 (EDT)

On Thu, 26 May 2005, Christian Holm Christensen wrote:

> Hi Pierre-Luc,
>
> On Thu, 2005-05-26 at 12:00 -0400, Pierre-Luc Drouin wrote:
> > I have some code that uses Root classes and that I load in Root as a
> > shared library with command gSystem->Load("libqsigex.so"). When I use some
> > of my classes it works fine but it crashes with the following error when
> > another of my classes tries to use Minuit:
> >
> > /libexec/ld-elf.so.1: /home/pldrouin/work/qsigex_new/lib/libqsigex.so:
> > Undefined symbol "_ZN7TMinuitC1Ei"
>
> This is a reference to `TMinuit::TMinuit(int)' (try doing `c++filt
> _ZN7TMinuitC1Ei'). Are you sure you have `libMinuit' loaded?
>

yes, the Minuit library is loaded

> If `libMiniut' is loaded, check that you can create an object using the
> above CTOR. Also check that the symbol is defined by doing
>
> nm -C libMinuit.so | grep TMinuit::TMinuit

Here is what I get:
nm -C libMinuit.so | grep TMinuit::TMinuit

00031f88 T TMinuit::TMinuit(TMinuit const&)
00031846 T TMinuit::TMinuit(int)
00030d34 T TMinuit::TMinuit()
00031c48 T TMinuit::TMinuit(TMinuit const&)
00031444 T TMinuit::TMinuit(int)
00030624 T TMinuit::TMinuit()

>
> > I get this error with FreeBSD 5.4-STABLE. I compile Root with gcc 3.4.2. I
> > get the error with the current CVS Root code and also with Root 4.04.02. I
> > don't get this error on a RedHat Linux box running gcc 3.2
>
> The reason you do not see it on GNU/Linux is perhaps that your library
> pulls in libMinut on its own (your library is linked against libMinut -
> which it shouldn't be btw. as libMinuit is really a plugin.)

I do not link my library against any other library.

Thanks!

Pierre-Luc Drouin Received on Thu May 26 2005 - 19:42:33 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:08 MET