Ole,
You must be consistent if you use namespaces.
In LinkDef.h replace:
#pragma link C++ class EventHeader;
by
#pragma link C++ class myexperiment::EventHeader;
or even better
#pragma link C++ class myexperiment::EventHeader+; (for auto schema
evolution)
Rene Brun
On Fri, 23 Aug 2002, Ole Streicher wrote:
> Hello again!
>
> I have now the problem to get linker errors when using rootcint.
> When I try to link my class to a complete program, I get the following:
>
> undefined reference to `myexperiment::EventHeader::ShowMembers(TMemberInspector &, char *)'
> undefined reference to `ROOT::GenerateInitInstance(myexperiment::EventHeader const *)'
> undefined reference to `myexperiment::EventHeader::Streamer(TBuffer &)'
> undefined reference to `myexperiment::EventHeader::Class(void)'
>
> The rootcint call I use is
>
> rootcint -f EventHeaderDict.cpp -c EventHeader.h LinkDef.h
>
> and ofcourse I include the "EventHeaderDict.cpp" in my library. Doing
> a "grep Streamer EventHeaderDict.cpp" also doesn't show any match.
>
> I have the following relevant files:
>
> EventHeader.h
> ==============
> #include <TObject.h>
> namespace myexperiment {
> class EventHeader : public TObject {
> private:
> int i;
> public:
> EventHeader();
> EventHeader(int);
> ~EventHeader();
> ClassDef(EventHeader, 1)
> };
> }
>
> EventHeader.cpp
> ===============
> #include "EventHeader.h"
> using namespace myexperiment;
> EventHeader::EventHeader(int run) {}
> EventHeader::~EventHeader() {}
> ClassImp(EventHeader)
>
> LinkDef.h
> =========
> #ifdef __CINT__
> #pragma link off all globals;
> #pragma link off all classes;
> #pragma link off all functions;
> #pragma link off all typedef;
> #pragma link C++ class EventHeader;
> #endif
>
> Can you hint what is wrong here?
>
> Tschuessi
>
> Ole
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:05 MET