Re: [ROOT] Parse error in TMatrix.h ?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Mar 06 2003 - 08:41:51 MET


Hi Julien,

I do not see any problem with your script and classes under Linux and gcc2.96. I
cannot test on macOS. However, you mention that you use 3.03/09.
Several changes have been made in 3.05 for this platform. I would suggest to
upgrade on this platform.

Rene Brun

"Julien.Bolmont" wrote:
> 
> Hi Rene,
> 
> Yesterday evening, I found the solution of my problem. It seems to be due
> to the fact that I included an header file (which defines some
> constants) without using it or without putting it into the Makefile.
> I also found a mistake in my Makefile.
> 
> Now, all works perfectly on RH7.2 with g++ 2.96 and root 3.03.09, but
> I still have a problem on Mac OS X.2, which is also a "parse error"
> problem.
> 
> (g++ 3.1 20020420 (prerelease) and root 3.04.02)
> 
> //_________________________________________________________
> 
> g++ -O -pipe -Wall -I/cern/root/include -c TSimpleParticle.cxx
> Generating dictionary TSimpleParticleDict.cxx...
> g++ -O -pipe -Wall -I/cern/root/include -c TSimpleParticleDict.cxx
> In file included from TSimpleParticleDict.h:29,
>                  from TSimpleParticleDict.cxx:13:
> TSimpleParticle.h:43: parse error before numeric constant
> TSimpleParticle.h:45: parse error before numeric constant
> TSimpleParticle.h:47: parse error before numeric constant
> TSimpleParticleDict.cxx: In function `int
>    G__TSimpleParticle_TSimpleParticle_1_0(G__value*, const char*,
> G__param*,
>    int)':
> TSimpleParticleDict.cxx:228: no matching function for call to
> `TSimpleParticle
>    ::TSimpleParticle(double, double, double, bool, double, double, double,
>    double, double, double)'
> TSimpleParticle.h:22: candidates are:
> TSimpleParticle::TSimpleParticle(const
>    TSimpleParticle&)
> TSimpleParticle.h:41:                 TSimpleParticle::TSimpleParticle()
> TSimpleParticleDict.cxx: In function `int
>    G__TSimpleParticle_TSimpleParticle_2_0(G__value*, const char*,
> G__param*,
>    int)':
> TSimpleParticleDict.cxx:241: no matching function for call to
> `TSimpleParticle
>    ::TSimpleParticle(double, double, double, bool, Double_t*, Double_t*)'
> TSimpleParticle.h:22: candidates are:
> TSimpleParticle::TSimpleParticle(const
>    TSimpleParticle&)
> TSimpleParticle.h:41:                 TSimpleParticle::TSimpleParticle()
> TSimpleParticleDict.cxx: In function `int
>    G__TSimpleParticle_TSimpleParticle_3_0(G__value*, const char*,
> G__param*,
>    int)':
> TSimpleParticleDict.cxx:254: no matching function for call to
> `TSimpleParticle
>    ::TSimpleParticle(double, double, double, bool, TVector3&, TVector3&)'
> TSimpleParticle.h:22: candidates are:
> TSimpleParticle::TSimpleParticle(const
>    TSimpleParticle&)
> TSimpleParticle.h:41:                 TSimpleParticle::TSimpleParticle()
> make: *** [TSimpleParticleDict.o] Error 1
> 
> //_________________________________________________________
> 
> I'll send you my different files in another mail.
> Thanks again,
> Julien
> 
> On Wed, 5 Mar 2003, Rene Brun wrote:
> 
> > Hi Julien,
> >
> > Could you send me your .h and .cpp files?
> >
> > Rene Brun
> >
> > "Julien.Bolmont" wrote:
> > >
> > > Hello rooters !
> > >
> > > I wrote a class TSimpleParticule :
> > >
> > > //_________ TSimpleParticle.h _________________________________
> > >
> > > class TSimpleParticle : public TObject {
> > >
> > > ...
> > >
> > > ClassDef(TSimpleParticle,1)
> > >
> > > };
> > >
> > > //____________________________________
> > >
> > > On of TSimpleParticle constructor use TVector3 objects, so I included
> > > TVector3.h at the beginning of TSimpleParticle.h.
> > >
> > > I use a Makefile inspired by $ROOTSYS/test/Makefile. During compilation of
> > > TSimpleParticle.cpp on Red Hat 7.2 with g++ 2.96 and root 3.03.09, I get :
> > >
> > > //__________________________________________
> > >
> > > g++ -O -Wall -fPIC -D_REENTRANT
> > > -I/home/masse/soft/root/v3.03.09.rh7.2/include   -c -o TSimpleParticle.o
> > > TSimpleParticle.cpp
> > > In file included from
> > > /home/masse/soft/root/v3.03.09.rh7.2/include/TVector3.h:17,
> > >                  from TSimpleParticle.h:21,
> > >                  from TSimpleParticle.cpp:14:
> > > /home/masse/soft/root/v3.03.09.rh7.2/include/TMatrix.h:94: parse error
> > > before `1.60217733e-19'
> > > /home/masse/soft/root/v3.03.09.rh7.2/include/TMatrix.h:95: parse error
> > > before `1.60217733e-19'
> > > make: *** [TSimpleParticle.o] Erreur 1
> > >
> > > //________________________________________________
> > >
> > > I also tried to compile on Mac OS X.2.4, with g++ 3.1 20020420
> > > (prerelease) and root 3.04.02. Here is the result (quiete similar !) :
> > >
> > > //________________________________________________
> > >
> > > g++ -O -pipe -Wall -I/cern/root/include   -c -o TSimpleParticle.o
> > > TSimpleParticle.cpp
> > > In file included from /cern/root/include/TVector3.h:17,
> > >                  from TSimpleParticle.h:21,
> > >                  from TSimpleParticle.cpp:14:
> > > /cern/root/include/TMatrix.h:96: parse error before numeric constant
> > > /cern/root/include/TMatrix.h:97: parse error before numeric constant
> > > make: *** [TSimpleParticle.o] Error 1
> > >
> > > //________________________________________________
> > >
> > > I didn't find anything like this in roottalk digest so I think I'm doing
> > > something wrong, but what is it ?
> > > Could you help me ?
> > >
> > > Thanks a lot,
> > > Julien
> > >
> > > --
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > Julien Bolmont                          | julien.bolmont@gamum2.in2p3.fr
> > > Ingénieur diplômé, doctorant            | Tél. bureau:   +33 4 67 14 93 30
> > > Groupe d'Astroparticules de Montpellier | Tél. domicile: +33 4 67 41 43 91
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> 
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Julien Bolmont                          | julien.bolmont@gamum2.in2p3.fr
> Ingénieur diplômé, doctorant            | Tél. bureau:   +33 4 67 14 93 30
> Groupe d'Astroparticules de Montpellier | Tél. domicile: +33 4 67 41 43 91
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET