making myroot

Paul M. Eugenio (eugenio@exotic.phys.cmu.edu)
Thu, 4 Feb 1999 08:16:54 -0500


Dear Rooter's

I'm trying to follow Dictionary Generation for Interactive Access Without I/O an
d RTTI example. But I'm having trouble making "myroot". I using egcs Linux ROOT
Version 2.20/06 and the makefile from $ROOTSYS/test/Makefile.

Right now I'm not attempting to link to myclasses and I still cannot figure thi
s out.

Anyone have an idea of what I'm doing wrong? MMany Thanks..

megux3 210% make
g++ -O -Wall -fno-rtti -fno-exceptions -fPIC -I/usr/local/root/include -c main
.C -o main.o
Linking myroot ...
main.o: In function `main':
main.o(.text+0x2f): undefined reference to `TRint::TRint(char *, int *, char **,
void *, int)'

ollect2: ld returned 1 exit status
make: *** [myroot] Error 1

----------------------
Here is main.C
-------------------
//--------------------------------------------------
#include "TROOT.h"
#include "TRint.h"

extern void InitGui(); // initializer for GUI needed for interactive interface

int Error;

VoidFuncPtr_t initfuncs[] = { InitGui, 0 };

// Initialize the ROOT system
TROOT root("Rint","The ROOT Interactive Interface", initfuncs);

int main(int argc, char **argv)
{
// Create interactive interface
TRint *theApp = new TRint("Rint", &argc, argv,0,0);

// Run interactive interface
theApp->Run();
delete theApp;
return 0;
}
//-------------

--------------------
Also the Makefile
___________________

ObjSuf = o
SrcSuf = cxx
ExeSuf =
DllSuf = so
EVENTLIB = $(EVENTO)
OutPutOpt = -o

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 -lGui -lGX11 -lX3d

# Linux with egcs
CXX = g++
CXXFLAGS = -O -Wall -fno-rtti -fno-exceptions -fPIC -I$(ROOTSYS)/include
LD = g++
LDFLAGS = -g
SOFLAGS = -shared
LIBS = $(ROOTLIBS) -lm -ldl -rdynamic
GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \
-lXpm -lX11 -lm -ldl -rdynamic

#------------------------------------------------------------------------------

HDRS = ppUtil.h ppVec.h

SRCS = main.cxx
# ppUtil.cc ppVec.cc

OBJS = main.o
#ppUtil.o ppVec.o ppUtilDict.o ppVecDict.o

PROGRAM = myroot

all: $(PROGRAM)

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

clean:; @rm -f $(OBJS) core

###

ppUtil.o:ppUtil.h
ppVec.o:ppVec.h

ppVecDict.cxx:ppVec.h
@echo "Generating dictionary ..."
@rootcint ppVecDict.cxx -c ppVec.h

ppUtilDict.cxx:ppUtil.h
@echo "Generating dictionary ..."
@rootcint ppUtilDict.cxx -c ppUtil.h

.$(SrcSuf).$(ObjSuf):
$(CXX) $(CXXFLAGS) -c $<