Dear ROOT-ers I have problems defining "operator>" or ">=", "<","<=" for my class. When generating the dictionary with rootcint the following warning is issued (in case of ">=" ): CC -O -KPIC -I./ -I/work/eddy/root/include -c main.C CC -O -KPIC -I./ -I/work/eddy/root/include -c TS.C Generating dictionary Warning: #pragma link, function =(TS&,TS&) not found FILE:TS_LinkDef.h LINE:9 Note: operator new() masked 1c Note: operator delete() masked 1c CC -O -KPIC -I./ -I/work/eddy/root/include -c TSDict.C CC -g main.o TS.o TSDict.o -L/work/eddy/root/lib -lRint -lNew -lBase -lCint -lClib -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml -lMat rix -lMeta -lMinuit -lNet -lPostscript -lProof -lTree -lUnix -lZip -lGpad -lGui -lGX11 -lX3d -L/usr/openwin/lib -L/usr/ccs/lib -lXpm -lX11 -lm -lgen -ldl -lsocket -lsunmath -o renroot renroot done The error message does not show the ">". Things work fine for any other operator. Any Clues ?? Best Regards, Eddy Offermann Below are my Makefile, TS_LinkDef.h, main.C, TS.C and TS.h ------------------- Makefile ---------- ObjSuf = o SrcSuf = C DllSuf = so ROOTLIBS = -L$(ROOTSYS)/lib -lRint -lNew -lBase -lCint -lClib -lCont -lFunc \ -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit -lNet \ -lPostscript -lProof -lTree -lUnix -lZip ROOTGLIBS = -lGpad -lGui -lGX11 -lX3d # Solaris CC = CC CCFLAGS = -O -KPIC -I./ -I$(ROOTSYS)/include LD = CC LDFLAGS = -g SOFLAGS = -G LIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/openwin/lib \ -L/usr/ccs/lib -lXpm -lX11 -lm -lgen -ldl -lsocket -lsunmath MAINO = main.$(ObjSuf) MAINS = main.$(SrcSuf) RENROOTO = TS.$(ObjSuf) \ TSDict.$(ObjSuf) RENROOTS = TS.$(SrcSuf) \ TSDict.$(SrcSuf) RENROOT = renroot OBJS = $(MAINO) $(RENROOTO) $(TSDISPLAYO) PROGRAMS = $(RENROOT) all: $(PROGRAMS) $(RENROOT): $(OBJS) $(LD) $(LDFLAGS) $(MAINO) $(RENROOTO) $(LIBS) -o $(RENROOT) @echo "$(RENROOT) done" clean: @rm -f $(OBJS) core \ TSDict.$(SrcSuf) TSDict.h .SUFFIXES: .$(SrcSuf) ### TS.o: TS.h TSDict.$(SrcSuf): TS.h @echo "Generating dictionary" @rootcint -f TSDict.$(SrcSuf) -c TS.h TS_LinkDef.h .$(SrcSuf).$(ObjSuf): $(CC) $(CCFLAGS) -c $< ------------------- TS_LinkDef.h ---------- #ifdef __CINT__ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class TS; #pragma link C++ function operator>=(TS&, TS&); #pragma link C++ function operator+(TS&, TS&); #endif ------------------- Main.C ---------- #include "TROOT.h" #include "TRint.h" extern void InitGui(); VoidFuncPtr_t initfuncs[] = { InitGui, 0 }; TROOT root("Rint","The ROOT Interactive Interface", initfuncs); //______________________________________________________________________________ int main(int argc, char **argv) { char appname[] = "Rint"; TRint *theApp = new TRint(appname, &argc, argv, 0, 0); // Init Intrinsics, build all windows, and enter event loop theApp->Run(); delete theApp; return(0); } ------------------- TS.C ---------- #include <TS.h> ClassImp(TS) //______________________________________________________________________________ TS::TS() { fNrRank = 0; } //______________________________________________________________________________ TS::~TS() { } //______________________________________________________________________________ TS& TS::operator=(const TS &ts1) { if (this != &ts1) { } return *this; } //______________________________________________________________________________ TS operator>=(TS &ts1, TS &ts2) { TS tsnew = ts1; return tsnew; } //______________________________________________________________________________ TS operator+(TS &ts1,TS &ts2) { TS tsnew = ts1; return tsnew; } ------------------- TS.h ---------- #ifndef ROOT_TS #define ROOT_TS ////////////////////////////////////////////////////////////////////////// // // // TS // // // // Description of TS Classes // // // ////////////////////////////////////////////////////////////////////////// #include <TObject.h> #include <TMath.h> #include <TText.h> #include <iostream.h> class TS : public TObject { private: Int_t fNrRank; public: TS(); virtual ~TS(); TS& operator=(const TS &ts1); friend TS operator>(TS &ts1, TS &ts2); friend TS operator+(TS &ts1, TS &ts2); ClassDef(TS,0) //TS structure }; #endif
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:29 MET