RE: [ROOT] How to use third party's shared library in Root/Cint

From: Philippe Canal (pcanal@popgtw.fnal.gov)
Date: Tue Aug 01 2000 - 20:17:19 MEST


Hi,

As suggested by the error message you can also use the -p options when 
running rootcint:

rootcint dict.C -c -p engine.h

However, on Solaris you may need to modify the file $ROOTSYS/MAKEINFO
to replace the lines:

CPPPREP     = CC -C -E

by

CPPPREP     = /usr/ccs/lib/cpp -E -C -B -D__sun -D__sparc -D__unix

Philippe.

> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of HP Wei
> Sent: Tuesday, August 01, 2000 9:44 AM
> To: roottalk@pcroot.cern.ch
> Subject: Re: [ROOT] How to use third party's shared library in Root/Cint
> 
> 
> Dear Rooters:
> 
>  I want to use a set of commercial C libraries
>  (libeng.so for Sun's Solaris) in Root/Cint (2.25).
> 
>  Following Fon's suggestion, the plan is to 
>  (1) rootcint dict.C -c engine.h   
>      to create the dictionary files for CINT.
>      Here, the engine.h is the header file from
>      this commercial package.
>      It defines a set of C functions and #include 
>      other header files.
>      
>  (2) compile this dict.C with main.C 
>      in the example in the article "CINT Dictionary Generator".
>      
>  Now, during step (1) I encounter the following three types of
>  error (warning) situations.
>  In each situation, I also append the surrounding lines
>  in the header file at issue.
>  Can anyone help out??
>  
>  
> 
> (1) ------ Limitation message
> Limitation: macro handled as typedef char INT8_T; FILE:tmwtypes.h LINE:88
> 
> ------ lines around LINE:88
> #ifndef INT8_T
> # if CHAR_MIN == -128
> #   define INT8_T char
> # elif SCHAR_MIN == -128           <------- line 88
> #   define INT8_T signed char
> # endif
> #endif
> 
> (2) ------ Error message
> Limitation: can not handle macro UINTEGER_T unsigned Use +P or -p option
>  FILE:tmwtypes.h LINE:284
> Error: class,struct,union or type UINTEGER_T not defined  FILE:tmwtypes.h 
> LINE:285
> 
> ------ lines around LINE:284
> #ifndef UINTEGER_T
> #define UINTEGER_T unsigned
> #endif                             <------- line 284
> typedef UINTEGER_T uint_T;
> 
> (3) ------ Error message
> Error: Unexpected EOF G__exec_statement() FILE:engine.h LINE:175
> Advice: You may need to use +P or -p option
> 
> ------ 
> Upon inspection of File:engine.h, I find that the line:175 is
> the end of the file:engine.h.
> 
> --------------------------
> 
> 
> 
> 
> 



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