Hi, I'm experiencing strange problems with rootcint. Adding one (empty!) line to a certain header file removes/enables rootcint to work inproperly. I'm wondering if this is due to the fact my ClassDef statements are NOT at the end of a class declaration. Is this required? The header file causing the problem is included. In the state this file is in now at compilation time the by rootcint generate dictionary (OTTDict.C) gives the following error messages: --------------- GENERATING OBJECT FILE ... aCC -c -g +Z -I/group/bfys/bfys/stage/root/include -I/user/r36/include /user/r36/work/lhcb/ott/src/new/OTTDict.C -o /user/r36/work/lhcb/ott/obj/OTTDict.o Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6762 # No appropriate function found for call of 'operator >>'. Last viable candidate was "TBuffer &operator >>(TBuffer &,TStorage *&)" ["/group/bfys/bfys/stage/root/include/TStorage.h", line 65]. Argument of type 'TFile *' could not be converted to 'TStorage *&'. R__b >> fSpyFile; ^^^^^^^^^^^^^^^^ Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6763 # No appropriate function found for call of 'operator >>'. Last viable candidate was "TBuffer &operator >>(TBuffer &,TStorage *&)" ["/group/bfys/bfys/stage/root/include/TStorage.h", line 65]. Argument of type 'TTree *' could not be converted to 'TStorage *&'. R__b >> fSpyTree; ^^^^^^^^^^^^^^^^ Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6766 # No appropriate function found for call of 'operator >>'. Last viable candidate was "TBuffer &operator >>(TBuffer &,TStorage *&)" ["/group/bfys/bfys/stage/root/include/TStorage.h", line 65]. Argument of type 'TServerSocket *' could not be converted to 'TStorage *&'. R__b >> fServerSocket; ^^^^^^^^^^^^^^^^^^^^^ Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6779 # No appropriate function found for call of 'operator <<'. Last viable candidate was "TBuffer &operator <<(TBuffer &,const TObject *)" ["/group/bfys/bfys/stage/root/include/TBuffer.h", line 335]. Argument of type 'TFile *' could not be converted to 'const TObject *'. R__b << fSpyFile; ^^^^^^^^^^^^^^^^ Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6780 # No appropriate function found for call of 'operator <<'. Last viable candidate was "TBuffer &operator <<(TBuffer &,const TObject *)" ["/group/bfys/bfys/stage/root/include/TBuffer.h", line 335]. Argument of type 'TTree *' could not be converted to 'const TObject *'. R__b << fSpyTree; ^^^^^^^^^^^^^^^^ Error 226: "/user/r36/work/lhcb/ott/src/new/OTTDict.C", line 6783 # No appropriate function found for call of 'operator <<'. Last viable candidate was "TBuffer &operator <<(TBuffer &,const TObject *)" ["/group/bfys/bfys/stage/root/include/TBuffer.h", line 335]. Argument of type 'TServerSocket *' could not be converted to 'const TObject *'. R__b << fServerSocket; ^^^^^^^^^^^^^^^^^^^^^ gmake: *** [/user/r36/work/lhcb/ott/obj/OTTDict.o] Error 2 ------------------- Looking at the dictionary I rootcint created a complete streamer for the OTRCM class which it should not do (ClassDef(OTRCM, 0!!! )). As said adding just an empty line (for example after the class OTRawEvetn; statement, solves the problem. Am I doing something wrong? Rutger #ifndef _OTRCM_H_ #define _OTRCM_H_ // // This File contains the declaration of the OTRCM-class // // C++ code for 'LHC-B Outer Tracker Testbeam Monitoring + Analyses' // // Author: Rutger van der Eijk // Version: V1.1.2 (03-06-98) #ifndef ROOT_TObject #include "TObject.h" #endif class TServerSocket; class TSocket; class OTLowLevelDAQ; class OTRunSettings; class OTMonitoringSettings; class OTHistogrammer; class OTUpdateHistogrammerTimer; class OTUpdateRCMTimer; class TFile; class TTree; class OTRawEvent; class OTRCM: public TObject { public: // ... OTRCM(UInt_t port); virtual ~OTRCM(); virtual void Print(Option_t *option = ""); void Run(); Bool_t Update(); ClassDef(OTRCM, 0) // OTRCM class private: // Bool_t fServerShutdown; // kTRUE if OTRCM should be shutdown OTUpdateRCMTimer *fRCMUpdateTimer; // timer to update RCM // Run datamembers Bool_t fRunActive; // kTRUE if a run is active. OTLowLevelDAQ *fDAQ; // pointer to low level DAQ OTRunSettings *fRunSettings; // Run settings OTMonitoringSettings *fMonSettings; // (online) monitoring settings OTHistogrammer *fHistogrammer; // (online) monitoring histogrammer OTUpdateHistogrammerTimer *fHistoUpdateTimer; // timer to update histogrammer // Spy related datamembers Bool_t fGetSpy; // kTRUE if spy should be taken TFile *fSpyFile; // SpyData file TTree *fSpyTree; // SpyData tree OTRawEvent *fSpyEvent; // pointer to last spy event ULong_t fNSpyBytes; // # bytes SpyData processed // TSocket based members void StartRun(TSocket *s); void StopRun(TSocket *s); void GetRunStatistics(TSocket *s); void GetLastSpyEvent(TSocket *s); TServerSocket *fServerSocket; //pointer to server socket }; #endif // _OTRCM_H_
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:33 MET