Cheers, Fons.
Oliver Mang wrote:
>
> Hello ROOTers,
> I'm having trouble compiling a dictionary generated by rootcint (ROOT
> 2.22.09, SuSE Linux 6.1, version 2.2.5 ,g++ version egcs-2.91.66).
> The classes CT1CamConfig and CT1TimeStamp inherit from TObject,
> CT1RunInfo inherits from CT1CamConfig and CT1Event from CT1TimeStamp.
> The dictionary CT1DatDict is generated from all four .H files.
> Questions are: Why are the Streamer and ShowMembers methods generated
> only for CT1TimeStamp ? and: Why does the compiler choke when compiling
> CT1DatDict.C ??
> I have attached the .h-files. If you need the classfiles, please let me
> know.
> Thanks in advance, Oliver
>
> PS: Fons: I already had included ClassImp/ClassDef Macros. Sorry for the
> big message before, I didn't realize the dictionary was that big.
> ========== transcript of compilation =====================
>
> ifkpe1> make CT1Dat
> g++ -O -Wall -fno-rtti -fno-exceptions -fPIC
> -I/users/home/mang/linux/root/include -c CT1CamConfig.C
> g++ -O -Wall -fno-rtti -fno-exceptions -fPIC
> -I/users/home/mang/linux/root/include -c CT1TimeStamp.C
> g++ -O -Wall -fno-rtti -fno-exceptions -fPIC
> -I/users/home/mang/linux/root/include -c CT1RunInfo.C
> g++ -O -Wall -fno-rtti -fno-exceptions -fPIC
> -I/users/home/mang/linux/root/include -c CT1Event.C
> /users/home/mang/linux/root/bin/rootcint -f CT1DatDict.C -c \
> CT1CamConfig.H CT1TimeStamp.H \
> CT1RunInfo.H CT1Event.H
> Note: operator new() masked 1c
> Note: operator delete() masked 1c
> Class CT1CamConfig: Streamer() not declared
> Class CT1CamConfig: ShowMembers() not declared
> Class CT1RunInfo: Streamer() not declared
> Class CT1RunInfo: ShowMembers() not declared
> Class CT1Event: Streamer() not declared
> Class CT1Event: ShowMembers() not declared
> g++ -O -Wall -fno-rtti -fno-exceptions -fPIC
> -I/users/home/mang/linux/root/include -c CT1DatDict.C
> CT1DatDict.C: In function `int G__CT1CamConfig_ClassDef_8_0(struct
> G__value *, char *, struct G__param *, int)':
> CT1DatDict.C:129: parse error before `private'
> CT1DatDict.C:129: warning: control reaches end of non-void function
> `G__CT1CamConfig_ClassDef_8_0(G__value *, char *, G__param *, int)'
> CT1DatDict.C: In function `Version_t Class_Version()':
> CT1DatDict.C:129: `libp' undeclared (first use this function)
> CT1DatDict.C:129: (Each undeclared identifier is reported only once
> CT1DatDict.C:129: for each function it appears in.)
> CT1DatDict.C:129: warning: control reaches end of non-void function
> `Class_Version()'
> CT1DatDict.C: At top level:
> CT1DatDict.C:129: virtual outside class declaration
> CT1DatDict.C:129: non-member function `IsA()' cannot have `const' method
> qualifier
> CT1DatDict.C: In function `class TClass * IsA()':
> CT1DatDict.C:129: confused by earlier errors, bailing out
> make: *** [CT1DatDict.o] Error 1
> ifkpe1>
> ============= end transcript =======================================
> --
> Oliver Mang
> Institut fuer Experimentelle und Angewandte Physik, CAU Kiel
> Phone: ++49/431/880-2482 E-Mail: mang@ifkhep.uni-kiel.de
> ---------------------------------------------------------------
> "The future is not what it used to be"
>
> --------------------------------------------------------------------------------
> /********************************************************************
> * CT1DatDict.h
> ********************************************************************/
> #ifdef __CINT__
> #error CT1DatDict.h/C is only for compilation. Abort cint.
> #endif
> #include <stddef.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> #include <string.h>
> extern "C" {
> #define G__ANSIHEADER
> #include "G__ci.h"
> extern void G__cpp_setup_tagtableCT1DatDict();
> extern void G__cpp_setup_inheritanceCT1DatDict();
> extern void G__cpp_setup_typetableCT1DatDict();
> extern void G__cpp_setup_memvarCT1DatDict();
> extern void G__cpp_setup_globalCT1DatDict();
> extern void G__cpp_setup_memfuncCT1DatDict();
> extern void G__cpp_setup_funcCT1DatDict();
> extern void G__set_cpp_environmentCT1DatDict();
> }
>
> #include "TROOT.h"
> #include "TMemberInspector.h"
> #include "CT1CamConfig.H"
> #include "CT1TimeStamp.H"
> #include "CT1RunInfo.H"
> #include "CT1Event.H"
>
> #ifndef G__MEMFUNCBODY
> #endif
>
> extern G__linked_taginfo G__CT1DatDictLN_TClass;
> extern G__linked_taginfo G__CT1DatDictLN_TObject;
> extern G__linked_taginfo G__CT1DatDictLN_CT1CamConfig;
> extern G__linked_taginfo G__CT1DatDictLN_CT1TimeStamp;
> extern G__linked_taginfo G__CT1DatDictLN_CT1RunInfo;
> extern G__linked_taginfo G__CT1DatDictLN_CT1Event;
>
> --------------------------------------------------------------------------------
> #ifndef _CT1CAMCONFIG_H_
> #define _CT1CAMCONFIG_H_
>
> #include "TObject.h"
>
> class CT1CamConfig:public TObject
> {
> private:
> UShort_t numpix;
> UShort_t se1zero;
> UShort_t se2zero;
> UShort_t nummupix;
>
> public:
> CT1CamConfig();
> // CT1CamConfig(UShort_t se1z, UShort_t se2z, UShort_t npix=127,
> // UShort_t nmpix=0);
> ~CT1CamConfig();
>
> UShort_t GetNumPix();
> void GetZeroPos(UShort_t *se1, UShort_t *se2);
> UShort_t GetNumMuPix();
> void SetNumPix(UShort_t npix);
> void SetZeroPos(UShort_t se1, UShort_t se2);
> void SetNumMuPix(UShort_t mupix);
>
> ClassDef(CT1CamConfig,1);
> };
>
> #endif // _CT1CAMCONFIG_H_
>
> --------------------------------------------------------------------------------
> #ifndef _CT1TIMESTAMP_H_
> #define _CT1TIMESTAMP_H_
>
> #include "TObject.h"
>
> const Int_t SecPerDay = 86400;
>
> class CT1TimeStamp:public TObject
> {
> private:
> Double_t jd;
> Int_t mjd;
> ULong_t secsincemidnight;
> ULong_t microsecs;
>
> private:
> void TimetoJD();
> void JDtoTime();
>
> public:
> CT1TimeStamp();
> ~CT1TimeStamp();
>
> void SetTime(Int_t m, ULong_t sec, ULong_t usec);
> void SetTime(Double_t j, ULong_t sec, ULong_t usec);
> void SetMJD(Int_t m);
> void SetJD(Double_t j);
> void SetSecs(ULong_t sec);
> void SetUSecs(ULong_t usec);
> Double_t GetJD();
> Int_t GetMJD();
> ULong_t GetSecs();
> ULong_t GetUSecs();
>
> ClassDef(CT1TimeStamp,1)
> };
>
> #endif //_CT1TIMESTAMP_H_
>
> --------------------------------------------------------------------------------
> #ifndef _CT1RUNINFO_H_
> #define _CT1RUNINFO_H_
>
> #include "CT1CamConfig.H"
>
> class CT1RunInfo:public CT1CamConfig //:public RA, public Dec
> {
> private:
> UChar_t telescope;
> UInt_t runnum;
> UInt_t numevents;
> Float_t ra; // in hours
> Float_t dec; // in degree
> UShort_t obstime; // in minutes
> Char_t on_off; // 1=on, 0=off
> Float_t mean_za; // mean zenith angle
>
> public:
> CT1RunInfo();
> CT1RunInfo(UChar_t tel, UInt_t run, UInt_t numevt);
> ~CT1RunInfo();
>
> UChar_t GetTelescope();
> UInt_t GetRunNumber();
> UInt_t GetNumEvents();
> void GetCoords(Float_t *rightascension, Float_t *declination);
> UShort_t GetObservTime();
> Char_t GetObservMode();
> Float_t GetMeanZA();
>
> void SetTelescope(UChar_t tel);
> void SetRunNumber(UInt_t run);
> void SetNumEvents(UInt_t num);
> void SetCoords(Float_t rightascension, Float_t declination);
> void SetObservTime(UShort_t minutes);
> void SetObservMode(Char_t on_off_flag);
> void SetObservMode(char *mode);
> void SetMeanZA(Float_t za);
>
> ClassDef(CT1RunInfo,1);
> };
>
> #endif // _CT1RUNINFO_H_
>
> --------------------------------------------------------------------------------
> #ifndef _CT1EVENT_H_
> #define _CT1EVENT_H_
>
> #include "CT1TimeStamp.H"
>
> class CT1Event:public CT1TimeStamp
> {
> private:
> UInt_t runnum;
> UInt_t eventnum;
> Short_t numadcpix;
> Short_t numtdcpix;
> UShort_t se1should;
> UShort_t se1is;
> UShort_t se2should;
> UShort_t se2is;
> Float_t hourangle; // in hours
> Float_t pointcorr1, pointcorr2;
> Float_t trigrate; // current trigger rate in Hz
>
> public:
> CT1Event();
> CT1Event(UInt_t run, UInt_t evt);
> ~CT1Event();
>
> UInt_t GetRunNumber();
> UInt_t GetEventNumber();
> Short_t GetNumADCPix();
> Short_t GetNumTDCPix();
> void GetSE1(UShort_t *should, UShort_t *is);
> void GetSE2(UShort_t *should, UShort_t *is);
> Float_t GetHourAngle();
> void GetPointCorr(Float_t *pc1, Float_t *pc2);
> Float_t GetTriggerRate();
>
> void SetRunNumber(UInt_t run);
> void SetEventNumber(UInt_t evt);
> void SetNumADCPix(Short_t numadcpix);
> void SetNumTDCPix(Short_t numtdcpix);
> void SetSE1(UShort_t should, UShort_t is);
> void SetSE2(UShort_t should, UShort_t is);
> void SetHourAngle(Float_t ha);
> void SetPointCorr(Float_t pc1, Float_t pc2);
> void SetTriggerRate(Float_t rate);
>
> ClassDef(CT1Event,1);
> };
>
> #endif //_CT1EVENT_H_
-- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910