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