RE: [ROOT] ACLIC..

From: Radovan Chytracek (Radovan.Chytracek@cern.ch)
Date: Wed Oct 03 2001 - 16:27:13 MEST


Hi,

The messages come from dynamic loader/linker.
You need to load the shared lib Lastra.so before you activate ACLIC...

Hope this helps

Radovan

 --

  Radovan Chytracek                  CERN Division IT/API, Geant4
  e-mail: Radovan.Chytracek@cern.ch  WWW: http://cern.ch/chytrace
  phone:  +41 22 76 78871


> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Tommaso Chiarusi
> Sent: Wednesday, 03 October 2001 16:18
> To: Root Newsgroup
> Subject: RE: [ROOT] ACLIC..
>
>
> On Tue, 2 Oct 2001, Philippe Canal wrote:
>
> > > 1. Following Philippe suggestion I tried to use ACLIC to
> complile a  library from > my macro "match.C", but after some
> debugging, I cannot fix the following:
> >
> > > dlopen error: /disk2/chiarusi/zonalavoro_root/./match_C.so:
> undefined symbol:
> > > __vt_6Lastra
> >
> > This means that the compiler was unable to find the virtual
> table for the
> > class Lastra.  This usually happens when one of the virtual
> function defined
> > in the interface is NOT implemented.  Try implementing all
> those function and
> > let me know if the problem is still there.
>
> Dear Philippe,
> as you can see in the attached file, class Lastra (and its derivate) seems
> not to have any uncompleted functions....
> ..
> Furthermore I have noticed the following:
> If I execute my macro match.C (the one that uses class Lastra) with CINT,
> I get  a new strange error, computing a ratio between powers:
> I got a division by zero ( having as denominator "pow(a,2)") even
> if I
> 	#include <cmath>
>
> in the Class that  performs such a ratio
>
> and having "a" DIFFERENT from zero!
>
> FACTS:
>
> 1. I used the class Lastra and Track to build the compiled library
> libLastra.so
> libTrack.so
> using a proper Makefile, derived from a Template.
> This was SUCCESFUL, and I build TTrees with Lastra Objects with great
> pleasure!!!!
>
>
>
> 2. Nonetheless, at the ROOT prompt, if I give the command
> .L match.C++ it gives the following output:
>
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> root [0] .L match.C++
> Creating shared library /disk2/chiarusi/zonalavoro_root/./match_C.so
> /disk2/chiarusi/zonalavoro_root/match.C: In function `void
> match(int, int, int, int, int)':
> In file included from /disk2/chiarusi/zonalavoro_root/fileUVW5XG.h:28,
>                  from /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.C:5:
> /disk2/chiarusi/zonalavoro_root/match.C:103: warning: unused
> variable `char c[4]'
> /disk2/chiarusi/zonalavoro_root/match.C:102: warning: unused
> variable `int colorDown'
> /disk2/chiarusi/zonalavoro_root/match.C:101: warning: unused
> variable `int colorUp'
> /disk2/chiarusi/zonalavoro_root/match.C:67: warning: unused
> variable `int color'
> dlopen error: /disk2/chiarusi/zonalavoro_root/./match_C.so:
> undefined symbol: __vt_6Lastra
> Load Error: Failed to load Dynamic link library
> /disk2/chiarusi/zonalavoro_root/./match_C.so
> /disk2/chiarusi/zonalavoro_root/match.C: In function `void
> match(int, int, int, int, int)':
> In file included from /disk2/chiarusi/zonalavoro_root/fileUVW5XG.h:28,
>                  from /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.C:5:
> /disk2/chiarusi/zonalavoro_root/match.C:103: warning: unused
> variable  `char c[4]'
> /disk2/chiarusi/zonalavoro_root/match.C:102: warning: unused
> variable `int colorDown'
> /disk2/chiarusi/zonalavoro_root/match.C:101: warning: unused
> variable `int colorUp'
> /disk2/chiarusi/zonalavoro_root/match.C:67: warning: unused
> variable `int color'
> /usr/lib/crt1.o: In function `_start':
> /usr/lib/crt1.o(.text+0x18): undefined reference to `main'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o: In function
> `match(int, int, int, int, int)':
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x239):
> undefined reference to `Lastra virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x241):
> undefined reference to `CR39 virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x2a1):
> undefined reference to `Lastra virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x2a9):
> undefined reference to `CR39 virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x31d):
> undefined reference to `Lastra virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x325):
> undefined  reference to `CR39 virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x360):
> undefined reference to `Lastra virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x368):
> undefined reference to `CR39 virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x38d):
> undefined  reference to `Track virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x3de):
> undefined  reference to `Track virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x508):
> undefined reference to `Track virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x5d7):
> undefined reference to `Track virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x1cd3):
> undefined reference to `Track virtual table'
> /disk2/chiarusi/zonalavoro_root/./fileUVW5XG.o(.text+0x2553):
> more undefined references to `Track virtual table' follow
> collect2: ld returned 1 exit status
> *** Interpreter error recovered ***
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> 3. the "power" error appeared recently after I inserted in both Lastra
> and Track classes the
>
> #if !defined(__CINT__) etc,,
> statements
>
> to make the compile do not interfer with CINT requirements.
>
> So...
> Could it be that this Lastra error is linked to the power Error?
> I separately tested all the class with a normal standalone C++ code... and
> they worg good!
>
> I' m puzzled!
> Thanks for your help
> Tommaso
>



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:02 MET