RE: [ROOT] ACLIC..

From: Philippe Canal (pcanal@fnal.gov)
Date: Tue Oct 02 2001 - 19:57:13 MEST


> 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.

> 2. How one can make  a compiled root class (e.g. libTrack.so) loaded using
> ACLIC?

ACLiC purpose is to compile, link and load a single C++ source file.  If your
library is already build (via Makefile and gmake for example), you can load
it via either of the following command 
	.L libTrack.so
	gROOT->ProcessLine(".L libTrack.so");
	gSystem->Load("libTrack.so);

> 3. Don't you think it is better to use the ROOT libraries/include_files 'a
> la' HBOOK outside ROOT itself, building a secure C++ code to be g++compiled ,
> than building heavy macros to be cint-interpreted? 

I agree with this sentiment.  Cint-interpreted macros are better used for small,
fast, rapidely evolving piece of code.  When your code becomes a little more
complexe and/or too slower, start using ACLiC.  When the code involves many
complex source files, you are usually better off writing your own LinkDef files
and Makefiles.

Cheers,
Philippe.



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