Re: Compiling vs loading library libEvent.so

From: Otto Schaile (Otto.Schaile@Physik.uni-muenchen.de)
Date: Wed Jan 26 2000 - 10:31:01 MET


On Wed, 26 Jan 2000, Mark James Boland wrote:

> Hello ROOT useres,
> 
> I have a macro to do my analysis using ROOT but I would like to speed it
> up by compiling it into an executable. My analysis macro uses a library
> libEvent.so which I load with the statement
> 
>   gSystem.Load("libEvent.so");// Load event and scaler classes
> 
> How do I include this library when compiling?

Hi Mark,

2 possibilities:
1.)
$ROOTSYS/test contains a worked example: Event,
in the Makefile you could replace the line
$(LD) $(LDFLAGS) $(MAINEVENTO) $(EVENTLIB) $(LIBS) $(OutPutOpt) $(EVENT)
by
$(LD) $(LDFLAGS) $(MAINEVENTO) $(EVENTSO) $(LIBS) $(OutPutOpt) $(EVENT)
i.e. using the shared lib instead of the obj.

2. from root 2.23/09 onwards you can do:
assume the following simple macro (I use again $ROOTSYS/test/libEvent.so)

//------------- tevent.C -------------------------------------------------
#include "iostream.h"
#include "Event.h"

void analyze(){
   cout << "analyze(), create an event" << endl;
   Event * ev = new Event();
   ev->SetHeader(1, 12345, 5678, 0.1);  
   ev->Print();
   cout << "analyze: RunNr: " 
        << ev->GetHeader()->GetRun() 
        << endl;
}
//-------------------------------------------------------------------

then run root:

root [1] gSystem.Load("libEvent.so")
(int)0
root [2] .L tevent.C++    
Creating shared library /home/rg/schaileo/myroot/test/./tevent.so
root [3] analyze()
Enter analyze()
OBJ: Event      Event   Event structure
analyze: RunNr: 12345
root [4]           

with this a shared library will be created using the native c++ 
compiler, analyze() is part of it.

(I am on Linux, RH 6.0, root 2.23/11)

This is just a very simple example, you may include your own classes,
provided you include the ClassDef and ClassImp macros.

Cheers
Otto
----------------------------------------------------------------------------
Otto Schaile                    Sektion Physik der LMU Muenchen
Phone: (+49 89)289 14070        Am Coulombwall 1, D-85748 Garching, Germany
FAX:   (+49 89)289 14072        EMail: Otto.Schaile@Physik.Uni-Muenchen.DE



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:17 MET