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