Hello
I have got a problem compiling a program with the TFile class on Linux.
TFiles causes a linking problem.
The error Message is:
--
g++ -w -I/cern/root/include -c striperoot.cc -DVERS_1 -o striperoot.o
g++ -g striperoot.o -L/cern/root/lib -lNew -lCore -lCint -lHist -lGraf
-lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -L/lib
-ldl -lm -o striperoot
striperoot.o: In function `main':
striperoot.o(.text+0x84): undefined reference to `TFile::TFile(char
const *, char const *, char const *, int)'
collect2: ld returned 1 exit status
make: *** [striperoot] Error 1
--
The source and the makefile is attached to this message.
Do I have to link something more? Any ideas?
Thank you
Christian
--
___________________________________________________________________
Christian Haeberli christian.haeberli@cern.ch
University of Bern
Laboratory for High Energy Physics Phone : ++ 41 31 631 4069
Sidlerstr. 5 Mobile: ++ 41 76 316 6159
CH-3012 BERN Fax : ++ 41 31 631 4487
#include<iostream.h>
#include "TROOT.h"
#include "TRint.h"
#include "TFile.h"
#include "TNtuple.h"
#include "TCanvas.h"
#include "TVirtualPad.h"
#include "TApplication.h"
#include "TH1.h"
#include "TSystem.h"
extern void InitGui(); // loads the device dependent graphics system
VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
int Error; // needed by Motif
TROOT striperoot("striperoot","DAQ",initfuncs);
void main ()
{
Int_t nlines = 0;
Int_t ncols;
int event[4];
float eventfloat[4];
char line[50];
int i;
FILE *fp = fopen("/home/duck/sbs_test/markus1.dat","r");
float *x;
cout<<"Hello World"<<endl;
TFile *file = new TFile("markus1.root","RECREATE","Hodoskop Strip Test");
TApplication *theApp = new TApplication("theApp", 0, NULL);
TNtuple *ntuple = new TNtuple("ntuple","data from ascii file","eventnr:adcch0:adcch1:flag",100000);
TCanvas *c1 = new TCanvas("c1","hello",200,10,700,500);
TH1F *hprof = new TH1F("hprof","Pulse Height Distribution",30,30.5,59.5);
hprof->Draw();
while (fgets(line,50,fp)) {
if (line[0]=='a') {
sscanf(line,"a %x %d %d %d",&event[0],&event[1],&event[2],&event[3]);
printf("%x\t%d\t%d\t%d\n",event[0],event[1],event[2],event[3]);
for (i=0;i<4;i++) {
eventfloat[i]=(float)event[i];
}
ntuple->Fill(eventfloat);
}
}
file->Append(ntuple);
ntuple->Show(20);
ntuple->Draw("adcch1>>hprof");
hprof->Fit("gaus");
theApp->Run();
delete theApp;
}
#cdir = /big/opt/WorkShop/SUNWspro
CC = g++
#ROOTSYS = /big/cern/root
ROOTLIBS = -L$(ROOTSYS)/lib -lNew -lCore -lCint -lHist -lGraf \
-lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix \
-lPhysics
LIBS = $(ROOTLIBS) -L/lib -ldl -lm
INCLUDE = -I$(ROOTSYS)/include
helloroot: helloroot.o
$(CC) -g helloroot.o $(LIBS) -o $@
helloroot.o: helloroot.cc makefile
$(CC) -w $(INCLUDE) -c helloroot.cc -DVERS_1 -o $@
testcanvas: testcanvas.o
$(CC) -g testcanvas.o $(LIBS) -o $@
testcanvas.o: testcanvas.cc makefile
$(CC) -w $(INCLUDE) -c testcanvas.cc -DVERS_1 -o $@
striperoot: striperoot.o
$(CC) -g striperoot.o $(LIBS) -o $@
striperoot.o: striperoot.cc makefile
$(CC) -w $(INCLUDE) -c striperoot.cc -DVERS_1 -o $@
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:34 MET