Debugging if rootcint fails

Dear cinters,
I run a comand:
[marabou]$ rootcint -f mbssim/src/…
… mbssim/inc/unix_string.h mbssim/inc/LinkDef.h
and get:
Error: Too many ‘}’ tmpfile:1112:
Error: Missing closing brace for the block opened around line 1110.
Error: Unexpected end of file (G__exec_statement()) tmpfile:1113:

!!!Removing mbssim/src/G__MbsSimRdoDict.cxx mbssim/src/G__MbsSimRdoDict.h !!!

Is there a way to find out what goes wrong, e.g. to find and save the " tmpfile" ??
I was able to catch G__MbsSimRdoDict.cxx, .h and even to compile it
but didnt find a hint why rootcint doesn t like it.
Cheers
Otto

Hi Otto,

I assume part of the “…” in the rootcint command line is “-p”, right? That would explain the tmpfile - it’s where cint buffers the output of the preprocessor. Anyway, I suspect that it’s a problem with your headers, so what you can do is ask the compiler: compile a source file that includes all your headers, and see what the compiler tells you. Does that help?

Cheers, Axel.

Hi Axel,
thanks for your answer.
Our problem was the following:
we had this in the include file:

#if ROOT_VERSION_CODE < ROOT_VERSION(5,16,0)
Bool_t Tokenize(TString& tok, Ssiz_t& from, const char* delim = " ") const;
#endif
but no "-p " option
rootcint was obviously confused by that.
Cheers
Otto

Hi,

well - it’s not that obvious. It’s a known bug in the CINT CPP parser. So yes, -p is the right work-around.

Cheers, Axel.