RE: [ROOT] ACLIC..

From: Tommaso Chiarusi (Tommaso.Chiarusi@bo.infn.it)
Date: Wed Oct 03 2001 - 16:18:05 MEST


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