Hi I am making some progress. But not quite there yet.
Following Philippe's suggestion, I did the following
>rootcint dict.C -c -p engine.h
This eliminates all error messages that I encountered
as described previously.
Then, the following two compiling steps are all ok.
g++ -O -fPIC -I/... -c -o dict.o dict.C
and
g++ -O myroot.o dict.o -L/rootlibs -L/commercial_shared_libs -o myroot
However,
in myroot (a custom version of Root/Cint),
all the functions in the commercial shared libs cannot be
recognized.
In fact, when I look into dict.C and dict.h, I could not
find any reference to the C functions defined in engine.h.
Is there any other steps that I can do?
Thanks,
HP
Note: myroot.C is
----------------
#include "TROOT.h"
#include "TRint.h"
TROOT root("Rint","The ROOT Interactive Interface");
int main(int argc, char **argv)
{
TRint *theApp = new TRint("Rint", &argc, argv, 0, 0);
// Init Intrinsics, build all windows, and enter event loop
theApp->Run();
delete theApp;
return(0);
}
----------------------------------------
Note: the first posting for your reference.
>> 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