Re: [ROOT] problem in accessing shared library from within Cint

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Feb 25 2003 - 18:29:51 MET


Hi HP,

specify
#ifndef __CINT__
#include "problematic.h"
#endif

where problematic.h is the include referencing the non-standard dirent.h

Concerning your question:
"how does Cint recognize all the classes in ROOT ?
     for example, is there a LinkDef.h file for TTree class ??"
Look into the ROOT source tree. Each ROOT subdir (eg tree) has a LinkDef.h file
eg tree/inc/LinkDef.h

Rene Brun

HP Wei wrote:
> 
> We have a large custom C++ shared library (on Solaris machines)
> libbox.so.  [It's not derived from TObject.]
> I want to access one particular class (Box) in that library
> from within Cint.
> I had experience in accessing c library before but have
> some problem in this case.
> Please advise me of any possible resolutions.
> 
> Here is the steps that I took.
> ---------------------------------
> (1) copy all .H files for libbox.so into directory A.
> 
> (2) create boxLinkDef.h
>     #ifdef __CINT__
> 
>     #pragma link off all globals;
>     #pragma link off all classes;
>     #pragma link off all functions;
>     #pragma link off all typedef;
> 
>     #pragma link C++ class Box-;
> 
>     #endif
> 
> (3) rootcint boxDict.C -c -p Box.H BoxLinkDef.h
> 
>     I am stuck here by some strange errors.
>     Here are some examples.
> 
>     Error: No symbol ino64_td_ino in current scope
>            FILE:/usr/include/sys/dirent.h LINE:63
> 
>     Error: No symbol __extension__typedeflonglong_G_llong in current scope
> FILE:/usr/local/gnu/install/gcc/2.9.5.2/lib/gcc-lib/sparc-sun-solaris2.6
> /2.95.2/../../../../sparc-sun-solaris2.6/include/_G_config.h LINE:20
> 
>    Any idea?   Are these problems caused by those *.H files ?
> 
> 
> Steps I am to take if (3) succeeds :
> (4) g++ -O -fPIC -I./  -c -o boxDict.o boxDict.C
> (5) g++ -O -fPIC -I/home/hp/ROOT/include   -c -o myroot.o myroot.C
> (6) g++ -O myroot.o boxDict.o -L/place/where/libbox.so/is -lbox .....
> 
> THanks,
> HP



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET