hi, I'm creating a tree with 3 classes: Evento, Track and Vertice. The problem is that the cint cannot recognize the Track and vertice classes. they are defined as folow: //------Evento.h---- #include "TObject.h" #include "TClonesArray.h" #include "TRefArray.h" #include "TRef.h" #include "TH1.h" #include "TMath.h" #include <iostream.h> class TDirectory; class Evento : public TObject{ public: Evento(); ~Evento(); Int_t fNtrack; Int_t evt; Int_t run; Int_t exp; TClonesArray *fTracks; TClonesArray *fVertice; static TClonesArray *fgTracks; static TClonesArray *fgVertice; ClassDef(Evento,1) }; class Track : public TObject{ public: Track(); ~Track(); Int_t evt; Int_t track_id; Double_t xf; Double_t yf; Double_t zf; Double_t txf; Double_t tyf; Double_t tzf; Double_t pf; TClonesArray *fVertices; ClassDef(Track,1) }; class Vertice : public TObject{ public: Vertice(); Int_t evt; Int_t verticeid; Double_t xv; Double_t yv; Double_t zv; TClonesArray *fTracks; ClassDef(Vertice,1) }; //--------Evento.cxx #include "TRandom.h" #include "TDirectory.h" #include "Evento.h" ClassImp(Evento) ClassImp(Track) ClassImp(Vertice) TClonesArray *Evento::fgTracks=0; TClonesArray *Evento::fgVertice=0; Evento::Evento() { if(!fgTracks) fgTracks=new TClonesArray("Track",1000); if(!fgVertice) fgVertice=new TClonesArray("Vertice",1000); fTracks=fgTracks; fVertice=fgVertice; } Track::Track() { } Vertice::Vertice() { } Then i have the LinkDef.h file, like: //-------EventoLinkDef.h #ifdef __CINT__ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class Evento+; #pragma link C++ class Track+; #pragma link C++ class Vertice+; #endif To gererate the dictionary file, i do: >rootcint -f EventoDict.cxx -c Evento.h EventoLinkDef.h To compile... >g++ -c -fPIC -I /usr/local/root/include/ EventoDict.cxx >g++ -c -fPIC -I /usr/local/root/include/ Evento.cxx To make the shared library... >g++ -shared -fPIC Evento.o EventoDict.o -o libEvento.so My problem comes now. When i load libEvento.so in root, i get this error: >root [0] .L libEvento.so dlopen error: undefined symbol: __vt_5Track Load Error: Failed to load Dynamic link library /home/lsilva/Root/nuno2/./libEvento.so *** Interpreter error recovered *** what am i doing wrong?. thank you very much for your help. Um abraço, Luís Silva. +*************************+***********************************+ |Luís Silva |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/| |Colaborator at DESY |Adress:FCUL | |in Hamburg Germany |Campo Grande, Edifício C8,room 8518| |Experiment Hera-b |1749-016 Lisboa-Portugal | |e-mail:Luis.Silva@desy.de|Tel.: +351 21 750 00 00 Ext.:28518 | +=========================+===================================+
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET