Re: Several rootcint questions

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Wed Jun 11 1997 - 13:01:23 MEST



attached mail follows:


Hi Terrence, sorry for the delay in answering, but too many things to do here. Terrence Brannon wrote: > > I have a completely working tree of source code that compiles under > g++2.7. I want to document my source using the root/cint automatic > documentation. > > -2: Is this part of the source code for ROOT? If not, where does one > obtain it? The documentation system is part of ROOT. It uses the THtml class (see http://hpna49-7.cern.ch/Documentation.html) > -1: Where does the ROOT FAQ exist? Is in preparation. For time being check the RootTalk digest (http://root.cern.ch/root/roottalk/index.html). > 0: Must I go about using the rootcint program on my source tree in a > particular order? No. The current version of the documentation system requires that you build a dictionary for your classes and link that with your classes in a shared library. Then start the root interactive program, load you shared library to it (gSystem.Load("myclasses.so")). And then execute the THml class as described in the THml class documentation. > 1: how does one specify a +P or -p option to rootcint? All extra rootcint options can be given like: rootcint MyDict.C -c +P -I$MYINCLUDES -I/usr/otherincludes MyClass.h LinkDef.h > 2: I am having lots of errors when I naively try to follow the example > program. That class is self-contained with no references to other > include files. My class hierarchy is multi-leveled. Can CINT handle > such complexity? What do you mean with multileveld? Embedded classes or just a simple (multiple) inheritance tree? The latter case is no problem for CINT. > 3: What is the meaning of > "Warning: Link requested for undefined class param.Vec FILE: LINE:0" This means that CINT wants to generate a dictionary for a class param.Vec which it does not find in the sourece file. If you want to generate a dictionary for a class that has a different name than the header file name minus the extension (.h) then one needs to define the desired class in the LinkDef.h file (see rootcint -?) In the above case you do not specify the LinkDef.h file so rootcint assumes that the class name is param.Vec. > 4: should I really be typing "rootcint mydict.C -c param.Vec.h" or > should I be typing rootcint mydict.h -c param.Vec.h rootcint mydict.C -c param.Vec.h LinkDef.h is what you want. Where LinkDef.h is: #ifdef __CINT__ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class paramVec; #endif > 5: builtin.h is in /usr/lib/g++-include++. How can I tell rootcint to look > there? The same goes for "String.h" Use the -I option to rootcint as described above. > 6: Could someone please tell me what causes the following Errors, > Notes, and Warnings and how to remedy them? > > brannon@palm ~/rs/VisionMagick/terry : rootcint mydict.C -c param.Vec.h > Error: source file "builtin.h" cannot open FILE:param.Vec.h LINE:27 > Error: source file "String.h" cannot open FILE:param.defs.h LINE:26 > Error: No symbol Stringname in current scope FILE:param.defs.h LINE:29 > Error: No symbol Stringval_strings[2] in current scope FILE:param.defs.h LINE:30 > Error: No symbol one_arg_error_handler_tparamVec_error_handler in current scope FILE:param.Vec.h LINE:84 > Note: operator new() masked c > Note: operator delete() masked c > Warning: Link requested for undefined class param.Vec FILE: LINE:0 > brannon@palm ~/rs/VisionMagick/terry : The errors are due to the fact rootcint does not know where to find builtin.h and String.h. Use -I. The Note: messages you can ignore. The one extra compilcation for HTML generation is that your class needs to have the ClassDef and ClassImp macros. See also http://hpna49-7.cern.ch/Documentation.html. We are currently working on a rewrite of the THtml class. Using the new system will be as simple as calling: rootdoc -t html -c MyClass.h ..... [LinkDef.h] The system can be easily customized using a formatting template file and there will be no need to add ClassDef and ClassImp macros to your code. Also we plan to have formatting types like: rootdoc -t man -- Unix man page style rootdoc -t latex -- Latex rootdoc -t frame -- FrameMaker MIF etc. We expect to have rootdoc for HTML in about a month from now. Cheers, Fons. -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland Phone: +41 22 7679248 E-Mail: Fons.Rademakers@cern.ch Fax: +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:19 MET