Re: [ROOT] problems

From: Rene Brun (brun@pcbrun.cern.ch)
Date: Fri Nov 05 2004 - 22:18:32 MET


Marco,

Remove the ClassDef and ClassImp statements from your code.
Simplify your link command with
 g++ -o Muone Muone.C `root-config --cflags --libs`

The ClassDef/ClassImp declarations may be used if you want
to generate a dictionary for your class (via rootcint)
eg if you want to call your class Muone from the interpreter.

Rene Brun


On Fri, 5 Nov 
2004, Marco Garbini wrote:

> Dear rooters I have a problem; I'm trying to compile my first root 
> program; if I derive a class from a  TObject  I get  the following result:
>  gcc Muone.C -Wno-deprecated -O -Wall -fPIC -pthread 
> -I/cern/root/include -L-L/cern/root/lib -lCore -lCint -lHist -lGraf 
> -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -pthread 
> -lm -ldl -rdynamic  -L/cern/root/lib -lCore -lCint -lHist -lGraf 
> -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lGui 
> -pthread -lm -ldl -rdynamic  -o Muone
> tmp/ccwxZ1PI.o(.text+0x41): In function 
> `__static_initialization_and_destruction_0(int, int)':
> : undefined reference to `ROOT::GenerateInitInstance(Muone const*)'
> collect2: ld returned 1 exit status
> make: *** [Muone] Error 1
> 
> The code is the following:
> Muone.C
> #include "Muone.h"
> ClassImp(Muone);
> int main() {
> };
> 
> 
> Muone.h
> #include "TObject.h"
> 
> class Muone : public TObject {
>  public:
>   Muone() {};
>   virtual ~Muone() {};
>  
>  private:
>  Float_t   Mene;       //muon energy
>   ClassDef(Muone,0)  //Eas Muone
> };
> 
> Thanks for your help
> Marco
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET