Re: [ROOT] std:vector in commandline

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Nov 18 2004 - 12:45:02 MET


Alessandro,

Yes, I did. see a transcript of my session below:

Rene

root [0] .L libtest.so
root [1] .x teststl.C
2
a[0]=12
a[1]=1e-05
root [2]

Alessandro Thea wrote:
> 
> Hi Rene,
> have you tried loading libtest.so before executing teststl.C?
> 
> .L libtest.so
> .x teststl.C
> 
> In fact I've used precompiled root 4.00.08  for SLC3.
> 
> Alessandro
> 
> Rene Brun wrote:
> 
> >Hi Alessandro,
> >
> >I have no problems with your test on SLC3. Your test script gives:
> >root [0] .x teststl.C
> >2
> >a[0]=12
> >a[1]=1e-05
> >
> >It is likely that you installed ROOT from source and did not run
> >  make cintdlls
> >that creates the necessary precompiled headers/libs to deal with STL in CINT.
> >
> >Rene Brun
> >
> >Alessandro Thea wrote:
> >
> >
> >>Hi all,
> >>I've found a weird behaviour in root command line when I try to use
> >>std::vectors on a Scientific Linux machine.
> >>The problem appears when I create a std::vector<double> after having
> >>loaded a library in which a std::vector<double> is used.
> >>Needless to say, it works perfecly if I load no libraries.
> >>
> >>To reproduce this problem I made a script, teststl.C which creates,
> >>fills, and reads a std::vector<double>.
> >>Then I set up class, MyClass which contains just a vector<double>* and I
> >>created the shared library, libtest.so.
> >>
> >>This is what I get just running the script:
> >>   *******************************************
> >>   *                                         *
> >>   *        W E L C O M E  to  R O O T       *
> >>   *                                         *
> >>   *   Version   4.00/08      10 July 2004   *
> >>   *                                         *
> >>   *  You are welcome to visit our Web site  *
> >>   *          http://root.cern.ch            *
> >>   *                                         *
> >>   *******************************************
> >>
> >>Compiled for linux with thread support.
> >>
> >>CINT/ROOT C/C++ Interpreter version 5.15.138, May 23 2004
> >>Type ? for help. Commands must be C++ statements.
> >>Enclose multiple statements between { }.
> >>root [0] .x teststl.C
> >>2
> >>a[0]=12
> >>a[1]=1e-05
> >>root [1]
> >>
> >>and this is what happens if I load libtest.so, even f i dont' use
> >>MyClass at all:
> >>
> >>   *******************************************
> >>   *                                         *
> >>   *        W E L C O M E  to  R O O T       *
> >>   *                                         *
> >>   *   Version   4.00/08      10 July 2004   *
> >>   *                                         *
> >>   *  You are welcome to visit our Web site  *
> >>   *          http://root.cern.ch            *
> >>   *                                         *
> >>   *******************************************
> >>
> >>Compiled for linux with thread support.
> >>
> >>CINT/ROOT C/C++ Interpreter version 5.15.138, May 23 2004
> >>Type ? for help. Commands must be C++ statements.
> >>Enclose multiple statements between { }.
> >>root [0] .L libtest.so
> >>root [1] .x teststl.C
> >>Error: Can't call vector<double,allocator<double> >::push_back(12.) in
> >>current scope FILE:teststl.C LINE:5
> >>Possible candidates are...
> >>filename       line:size busy function type and name  (in
> >>vector<double,allocator<double> >)
> >>Error: Symbol a is not defined in current scope  FILE:teststl.C LINE:5
> >>Error: Failed to evaluate a.push_back(12.)Possible candidates are...
> >>filename       line:size busy function type and name
> >>*** Interpreter error recovered ***
> >>root [2]
> >>
> >>I found that this error appears just on Scientific Linux v3, with gcc
> >>version 3.2.3 20030502 (Red Hat Linux 3.2.3-39). I've tried with both
> >>root 4.00.06 and root 4.00.08.
> >>
> >>On the contrary, it works perfectly on RedHat 9, gcc 3.2.2 and RedHat
> >>7.3 gcc 2.96.
> >>Do you have any idea?
> >>
> >>I have attached the code that reproduces the problem.
> >>Thanks and Regards,
> >>Alessandro
> >>
> >>--
> >>__________________________________________________________________________
> >>
> >>   Alessandro Thea
> >>   Ph.D. Student
> >>   Dipartimento di Fisica dell'Universita' di Genova and
> >>   Istituto Nazionale di Fisica Nucleare, Sezione di Genova,
> >>   Via Dodecaneso 33, I-16146, Genova, Italia.
> >>
> >>   Tel : +39 010 3536468               E-Mail: Alessandro.Thea@ge.infn.it
> >>   Cell: +39 349 2724919
> >>__________________________________________________________________________
> >>
> >>  --------------------------------------------------------------------------------
> >>                  Name: libtest.tgz
> >>   libtest.tgz    Type: unspecified type (application/octet-stream)
> >>              Encoding: base64
> >>
> >>
> 
> --
> __________________________________________________________________________
> 
>   Alessandro Thea
>   Ph.D. Student
>   Dipartimento di Fisica dell'Universita' di Genova and
>   Istituto Nazionale di Fisica Nucleare, Sezione di Genova,
>   Via Dodecaneso 33, I-16146, Genova, Italia.
> 
>   Tel: +39 010 3536468               E-Mail: Alessandro.Thea@ge.infn.it
> __________________________________________________________________________



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