HP-UX 10.20 problems...

Radovan Chytracek (Radovan.Chytracek@cern.ch)
Fri, 6 Mar 1998 23:24:40 +0100 (MET)


Hello Rooters,

I tried to add a simple class to ROOT to make it
accessible from interactive interface.

System is HP-UX atlas09 B.10.20 A 9000/831
$ROOTSYS = /afs/cern.ch/na49/library/local/ROOT/hpux10/root

What I've got is:

Generating dictionary ...
Note: operator new() masked 1c
Note: operator delete() masked 1c
Class Bubu: Streamer() not declared
Class Bubu: ShowMembers() not declared
CC -g -w -O +a1
-I/afs/cern.ch/na49/library/local/ROOT/hpux10/root/include
-c Bubudict.C
Linking buburoot ...
CC -g -w -O +a1 -Wl,-E main.o Bubu.o Bubudict.o
-L/afs/cern.ch/na49/library/local/ROOT/hpux10/root/lib -lNew -lBase -lCint
-lClib -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta
-lMinuit -lNet -lPostscript -lProof -lTree -lUnix -lZip -lGpad -lGX11
-lMotif -lWidgets -lX3d -L/usr/lib/Motif1.1 -lXm -lXt -lX11 -lm -lPW
-ldld -o buburoot
/usr/ccs/bin/ld: Unsatisfied symbols:
Virtual table for class 'TRint': first non-inline virtual function in
'TRint' is not defined. (1930)
Error (data)
TRint::TRint(char*,int*,char**,void*,int) (code)
*** Error exit code 1

Any suggestions ?
May be I missed some inmportant point...

Class code and related file follow:

//////////////////////////////////////////////////////
Bubu.h:

#ifndef _Bubu_
#define _Bubu_

#include "Rtypes.h"

class Bubu {

public:
Bubu(Int_t id = 0);
void Id( Int_t id );
void Show();

private:
Int_t fBubuID;

};

#endif // _Bubu_

////////////////////////////////////////////

Bubu.C:

#include "Bubu.h"

#include <iostream.h>

Bubu::Bubu(Int_t id)
{
fBubuID = id;
}

void Bubu::Id( Int_t id)
{
fBubuID = id;
}

void Bubu::Show()
{
cout << "Hello World from Bubu " << fBubuID << endl;
}

////////////////////////////////////////////

LinkDef.h:

#ifdef __CINT__

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ class Bubu;

#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)
{
TRint *theApp = new TRint("Rint", &argc, argv, 0, 0);

// Init Intrinsics, build all windows, and enter event loop
theApp->Run();

delete theApp;

return(0);
}

////////////////////////////////////////////
makefile:

CXXFLAGS = -g -w -O +a1 -I$(ROOTSYS)/include
LDFLAGS = -g -w -O +a1 -Wl,-E
LD = $(CXX)
ROOTLIBS = -L$(ROOTSYS)/lib -lNew -lBase -lCint -lClib -lCont -lFunc \
-lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit -lNet \
-lPostscript -lProof -lTree -lUnix -lZip
ROOTGLIBS = -lGpad -lGX11 -lMotif -lWidgets -lX3d

LIBS = $(ROOTLIBS) \
$(ROOTGLIBS) \
-L/usr/lib/Motif1.1 \
-lXm -lXt -lX11 -lm -lPW -ldld

HDRS = Bubu.h

SRCS = main.C Bubu.C Bubudict.C

OBJS = main.o Bubu.o Bubudict.o

PROGRAM = buburoot

all: $(PROGRAM)

$(PROGRAM): $(OBJS)
@echo "Linking $(PROGRAM) ..."
$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
@echo "done"

clean:
@rm -f $(OBJS) core *.bak buburoot Bubudict.*

###
Bubu.o: Bubu.h

Bubudict.C: Bubu.h
@echo "Generating dictionary ..."
@rootcint -f Bubudict.C -c Bubu.h LinkDef.h