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