Re: making myroot

Rene Brun (Rene.Brun@cern.ch)
Thu, 04 Feb 1999 14:32:42 +0000


Hi Paul,
Quite simple. You forgot the library libRint.so in your list of
libraries.
Add -lRint in your list of libs.

Rene Brun

Paul M. Eugenio wrote:
>
> 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 $<