Hi!
I want to use a class that is compiled in a shared library for the
interactive work of Root.
The problem is that Root/Cint seems to not recognize my class. When I
have in the include file
class MyRun {
private:
int Number;
public:
MyRun(int);
};
and I put the appropriate .cpp compiled into the shared lib, I get the
error message:
root [0] gSystem->Load(".libs/mylib");
root [1] .L MyRun.h
root [2] MyRun run(1);
Error: MyRun() header declared but not defined FILE:/tmp/fileAvD17t_cint LINE:1
When I put the "ClassDef" line into the class declaration, I get a
number of mystic linking errors when compiling the class:
/usr/include/g++-3/stl_construct.h:43: undefined reference to `MyRun virtual table'
./.libs/libmyrun.so: undefined reference to `ROOT::GenerateInitInstance(MyRun const *)'
./.libs/libmyrun.so: undefined reference to `MyRun type_info function'
./.libs/libmyrun.so: undefined reference to `MyRun::ShowMembers(TMemberInspector &, char *)'
./.libs/libmyrun.so: undefined reference to `MyRun type_info node'
My LinkDef.h is
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link off all typedef;
#pragma link C++ nestedtypedef;
#pragma link C++ nestedclass;
#pragma link C++ class pamela::MyRun+;
What is wrong with my code?
Ole
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET