Re: [ROOT] error loading user library

From: Valeri Fine (fine@bnl.gov)
Date: Fri Jun 29 2001 - 04:30:09 MEST


This sound you forgot to provide an implementation of some virtual method of
your TestHeader class (destructor for example).
To reply your question one needs that class implementation file. 
That you did not send us yet.
Please check it yourself carefully. 
It must contain the definitions of all methods of your TestHeader  class
namely:

TestHeader::TestHeader() { . .  }
TestHeader:: ~TestHeader();
 void TestHeader::Set(Char_t loc, string name, UInt_t Run,
Double_t* env, 
 Float_t hv, UShort_t cookie) { . . . }

 Hope this helps, Valeri

----- Original Message ----- 
From: "Mike Kordosky" <kordosky@mail.hep.utexas.edu>
To: "ROOTtalk Mailing List" <roottalk@pcroot.cern.ch>
Sent: Thursday, June 28, 2001 9:36 PM
Subject: [ROOT] error loading user library


> Hi,
> 
> I have a little test library that I am trying to compile and use inside
> the interpreted environment.  The library compiles and links without
> complaint, but once inside the environment, I get:
> 
> CINT/ROOT C/C++ Interpreter version 5.15.04, June 17 2001
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }.
> root [0] gSystem->Load("libTestRecord.so");
> dlopen
> error: /home/kordosky/minos/teststand/code/tree-test/./libTestRecord.so: undefined
> symbol: __vt_10TestHeader
> Load Error: Failed to load Dynamic link library
> /home/kordosky/minos/teststand/code/tree-test/./libTestRecord.so
> *** Interpreter error recovered ***
> root [1] 
> 
> Could someone point me in the right direction?
> 
> Thanks,
> 
> Mike Kordosky
> 
> The library header file is:
> 
> //
> // TestRecord
> //
> // a class used to test tree i/o
> //
> #include <string>
> #include "TObject.h"
> #include "TClonesArray.h"
> #include "TH1.h"
> 
> class TestHeader: public TObject{
> private:
> Char_t fLoc;
> string fName;
> UInt_t fRun;
> Double_t fEnv[8];
> Float_t fHV;
> UShort_t fCookie;
> public:
> TestHeader();
> ~TestHeader();
> void Set(Char_t loc, string name, UInt_t Run,
> Double_t* env, 
> Float_t hv, UShort_t cookie);
> ClassDef(TestHeader, 1)
> };
> 
> class TestRecord: public TObject{
> private:
> Int_t fNumSum;
> TestHeader fHdr;
> TClonesArray* fSummary; file://-> clones array of
> record summaries
> static TClonesArray* fgSummary;
> public:
> TestRecord();
> ~TestRecord();
> void SetHeader(Char_t loc, string name, UInt_t
> Run, Double_t* env,
> Float_t hv, UShort_t cookie); 
> void AddSummary(Double_t random);
> void Clear(Option_t* option = "");
> static void Reset(Option_t* option = "");
> ClassDef(TestRecord, 1)
> };
> 
> 
> class TestSummary: public TObject{
> private:
> UShort_t fType;
> Double_t fMean;
> Float_t fHV;
> TH1F* fH;
> public:
> TestSummary() : fH(0) { }
> TestSummary(Double_t random);
> ~TestSummary();
> ClassDef(TestSummary, 1)
> };
> 
> 
> 
> ///////////////////////////////////////////////////////////////////  
> // Graduate Research Assistant  //  High Energy Physics          //
> // RLM Office: (512) 471-8426  //  University of Texas, Austin   //
> // RLM Lab: (512) 471-3526    //  kordosky@hep.utexas.edu        //
> // ENS Lab: (512) 475-8673   //  kordosky@fnal.gov               //
> ///////////////////////////////////////////////////////////////////
> 
> 



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:50 MET