Hi,
You probably forgot to implement TBigDSWriteParticle::~TBigDSWriteParticle
and/or to create, compile
and link the ROOT dictionary for TBigDSWriteParticle (see rootcint).
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On
Behalf Of 0ndrej Chvala
Sent: Friday, October 10, 2003 12:57 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] Problem loading shared library
Dear rooters,
I have created a very basics class, which is even based on aa working
class by Michal Kreps, added it into our small root project, compiled
the library and when I want to use that library, I get the following error:
root [0] gSystem->Load("../lib/libmicro.so");
dlopen error:
/afs/cern.ch/user/o/ondrejch/public/mixing/src/./../lib/libmicro.so:
undefined symbol: __vt_19TBigDSWriteParticle
Load Error: Failed to load Dynamic link library
/afs/cern.ch/user/o/ondrejch/public/mixing/src/./../lib/libmicro.so
*** Interpreter error recovered ***
also when I want to link it with another code, I get:
g++ -o /afs/cern.ch/user/o/ondrejch/public/dst_write/bin/dst_write
dst_write.o -L/afs/cern.ch/na49/library/pro/lib -ldb -ltrk -g
-L/afs/cern.ch/na49/library/local/ROOT/root/lib -lCore -lNew -lHist
-lCint -lMatrix -lTree -lPhysics -lRint -lMatrix -lMinuit -lEG
-lGraf-lGraf3d -lGpad -L/afs/cern.ch/na49/library/pro/DSPACK/lib
-ldspack /usr/local/lib/libshift.a
/afs/cern.ch/user/o/ondrejch/public/mixing/lib/libmicro.so
-L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -lg2c
-L/afs/cern.ch/sw/fortran/pgi/pgi324/linux86/lib/ -lpgftnrtl -lpgc
-L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -lg2c -ldl -lm -lc -lnsl -lcrypt
/afs/cern.ch/user/o/ondrejch/public/mixing/lib/libmicro.so: undefined
reference to `TBigDSWriteParticle::IsA(void) const'
/afs/cern.ch/user/o/ondrejch/public/mixing/lib/libmicro.so: undefined
reference to `TBigDSWriteParticle type_info function'
/afs/cern.ch/user/o/ondrejch/public/mixing/lib/libmicro.so: undefined
reference to `TBigDSWriteParticle virtual table'
collect2: ld returned 1 exit status
gmake[2]: ***
[/afs/cern.ch/user/o/ondrejch/public/dst_write/bin/dst_write] Error 1
We tried everything we could and we are still lost :( Thanks for any help
These is the sources of the simple class in question -->
TBigDSWriteParticle.h:
#ifndef TBigDSWriteParticle_Header
#define TBigDSWriteParticle_Header
#include "TObject.h"
#include "TObjArray.h"
class TBigDSWriteParticle : public TObject
{
private :
Float_t fPx; // Momenta in x direction in LAB
Float_t fPy; // Momenta in y direction in LAB
Float_t fPz; // Momenta in z direction in LAB
public :
TBigDSWriteParticle();
TBigDSWriteParticle(Float_t px,Float_t py, Float_t pz);
~TBigDSWriteParticle();
void SetPx(Float_t px) {fPx=px;}; // Set px
void SetPy(Float_t py) {fPy=py;}; // Set py
void SetPz(Float_t pz) {fPz=pz;}; // Set pz
Float_t GetPx() {return fPx;}; // Returns px
Float_t GetPy() {return fPy;}; // Returns py
Float_t GetPz() {return fPz;}; // Returns pz
ClassDef(TBigDSWriteParticle,1) // Event base class
};
#endif
TBigDSWriteParticle.cxx:
#include "TObject.h"
#include "TBigDSWriteParticle.h"
ClassImp(TBigDSWriteParticle)
TBigDSWriteParticle::TBigDSWriteParticle()
{
fPx=0;
fPy=0;
fPz=0;
}
TBigDSWriteParticle::TBigDSWriteParticle(Float_t px,Float_t py, Float_t pz)
{
fPx=px;
fPy=py;
fPz=pz;
}
thanks and greetings,
0ndrej CHvala, NA49
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET