I send you this email because I can't get through with compiling cint programs
. May be you can help me. In this case, I would be very grateful to you.
I use the pro version of root, on Linux redhat 6.
I always received those kind of error messages
>make
g++ -o corsaires corsaires.cc -I/cern/root/include -O -Wall -fPIC
-I/cern/root/include -L/cern/root/lib -lNew -lCore -lCint -lHist -lGraf
-lGraf3d
-lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lm -ldl -rdynamic
corsairesObjC.o
/tmp/ccAonME3.o: In function `main':
/tmp/ccAonME3.o(.text+0x254): undefined reference to `TFile::TFile(char const
*,
char const *, char const *, int)'
collect2: ld returned 1 exit status
make: *** [corsaires] Error 1
linstar5>
when I try to compile my cint program corsdaires.cc, with classes defined in
corsairesObj.h
I send you corsaires.cc, corsairesObj.h (I simplfied them as much as possible
for this mail), my LinkDef.h and my Makefile:
-------------------------Corsaires.cc--------
#include "corsairesObj.h"
ClassImp(Part)
ClassImp(ShowerHeader)
ClassImp(Event)
TROOT root(" "," ");
int main()
{
TFile *EvTFile=new TFile("a root file","RECREATE","a root file");
EvTFile->Close();
return 0;
}
----------------------------------------------
-------------corsairesObj.h-------------------
#ifndef RUNOBJ_H
#define RUNOBJ_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cstdlib>
#include <iostream.h>
#include "/cern/root/include/TFile.h"
#include "/cern/root/include/TTree.h"
#include "/cern/root/include/TROOT.h"
#include "/cern/root/include/TObject.h"
class Part:public TObject
{
private:
public:
Part(){};
~Part(){};
ClassDef(Part,1)
};
class ShowerHeader:public TObject
{
private:
public:
ShowerHeader(){};
~ShowerHeader(){};
ClassDef(ShowerHeader,1)
};
class Event:public TObject
{
private:
public:
~Event(){};
ClassDef(Event,1)
};
#endif
---------------------------------------------
---------------Makefile-----------------------
ROOTCFLAGS = $(shell root-config --cflags)
ROOTLIBS = $(shell root-config --libs)
ROOTGLIBS = $(shell root-config --glibs)
ROOTSYS=/cern/root
# Linux with egcs
CXX = g++
CXXFLAGS =-I$(ROOTSYS)/include -O -Wall -fPIC
LD = g++
LDFLAGS = -g
SOFLAGS = -shared
CXXFLAGS += $(ROOTCFLAGS)
LIBS = $(ROOTLIBS)
GLIBS = $(ROOTGLIBS)
all: corsaires
clean:
rm *.o *C.*
corsairesObjC.cc: corsairesObj.h LinkDef.h
$(ROOTSYS)/bin/rootcint -f corsairesObjC.cc -c corsairesObj.h LinkDef.
h
corsairesObjC.o: corsairesObjC.cc
$(CXX) -c corsairesObjC.cc $(CXXFLAGS)
corsaires: corsaires.cc corsairesObjC.o
$(CXX) -o corsaires corsaires.cc $(CXXFLAGS) $(LIBS) corsairesObjC.o
----------------------------------------------
-------------------Linkdef,h------------------
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class Part;
#pragma link C++ class ShowerHeader;
#pragma link C++ class Event;
#endif
----------------------------------------------
I type "make" in the directory in which all those files belong, and
/cern/root/include is the right pass in my computer for the .h files
Hello Rooters,
I get following question. This is about building ROOT application.
My speciality is limited on pure Cint, so would anybody answer his
question?
Thank you
Masaharu Goto
==============================================================================
So my question is: Can you see what's missing in any of my files that explain
for the error messages?
When I copy /root/test into a directory "test", and type "make" inside to
compile Event.cxx, I also get an error:
make
g++ -O -Wall -fPIC -I/cern/root/include -c Event.cxx
g++ -O -Wall -fPIC -I/cern/root/include -c EventDict.cxx
g++ -O -Wall -fPIC -I/cern/root/include -c MainEvent.cxx
g++ -shared -g Event.o EventDict.o -o libEvent.so
g++ -g MainEvent.o Event.o EventDict.o -L/cern/root/lib -lNew -lCore -lCint
-lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -l
m -ldl -rdynamic -o Event
MainEvent.o: In function `main':
MainEvent.o(.text+0x746): undefined reference to `TFile::TFile(char const *,
char const *, char const *, int)'
MainEvent.o(.text+0xa15): undefined reference to `TFile::TFile(char const *,
char const *, char const *, int)'
MainEvent.o(.text+0xb3e): undefined reference to `TDirectory::TDirectory(char
const *, char const *, char const *)'
collect2: ld returned 1 exit status
make: *** [Event] Error 1
so probably it's an installation problem, but I can't see which.
With my best regards,
Gilles Zalamansky
University of leeds, UK
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:19 MET