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