[ROOT] Re: Cint and MSVC7

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Mon Dec 02 2002 - 23:22:15 MET


Hello Alex,

Thank you for trying this.  Let me look into this.   Meanwhile,
will you send me the modified bcvstrm.cxx? I'll try to generate
vc7strm.cxx out from it.

There is another person who is compiling Cint (pure cint) with
VC++7.0.  Sounds like he uses vcstrm.cxx and his original
VC++6.0 setup as is.  Just for your information.

Thank you
Masa Goto

=======================================================
Marc Irsch(marc@computerspacken.org) wrote:

MG> I don't think debug and release build make big difference. It is
encouraging
MG> that you can run Cint with VC++7.0. We have several people who have
MG> VC++7.0 and having problem with Cint. It will be quite helpful if you
MG> provide us some information.

MG>   - How you compiled Cint with VC++7.0?
MG>         a. with platform/visual/setup.bat  script
MG>         b. with src/libcint/libcint.mdp and cint/cint.mdp
MG>         c. other

The answer is c. I built my own project files on VC++ 6.0 and
imported them on VC++ 7.0 later on.
Worked immediately, without any modification.

I didn't use the setup files with VC++ 7.0 yet.

MG>   - Which iostream dictionary file did you use?
MG>         a. src/libstrm.cxx
MG>         b. src/vcstrm.cxx
MG>         c. src/cbstrm.cxx
MG>         d. src/gcc3strm.cxx
MG>         e. src/fakestrm.cxx
MG>         f.  other...

b.

MG>    - I guess you compiled libcint.dll and cint.exe. How about other
MG> libraries
MG>       especially precompiled STL container class libraries.
MG>            stl/string.dll , stl/vector.dll , stl/list.dll ,
stl/deque.dll ,
MG> stl/map.dll , etc...

Nope, sorry. Never touched these files.

Regards,
  Marc



----- Original Message -----
From: "Axel Naumann" <axel-naumann@gmx.de>
To: "'Masaharu Goto'" <MXJ02154@nifty.ne.jp>
Sent: Tuesday, December 03, 2002 3:00 AM
Subject: Cint and MSVC7


> Dear Masa,
>
> I finally sat down and tried to build CInt (well, Root's version of
> CInt) with Microsoft Visual C++.NET. As you suggested during the root
> workshop I started out with the bcstream files. Those worked quite well,
> the only changes I had to make were
> * remove wrappers to streambuf::sputn and sgetn (not supported by MSVC's
> streambuf)
> * fstreambase and strstreambase (they are not base classes for MSVC's
> fstream and strstream, only iostream is base for strstream): Remove
> class setup, method wrappers and inheritance setup
> * remove wrapper to strstreambuf::doallocate (declared as protected in
> MSVC)
>
>
> Now all I'm left with is
>
> libCint.exp : error LNK2001: unresolved external symbol
> _CT??_R0?AVexception@@@8
> ??0exception@@QAE@ABV0@@Z12
> libCint.exp : error LNK2001: unresolved external symbol
> _CT??_R0?AVlength_error@
> std@@@8??0length_error@std@@QAE@ABV01@@Z40
> libCint.exp : error LNK2001: unresolved external symbol
> _CT??_R0?AVlogic_error@s
> td@@@8??0logic_error@std@@QAE@ABV01@@Z40
> libCint.exp : error LNK2001: unresolved external symbol
> _CT??_R0?AVout_of_range@
> std@@@8??0out_of_range@std@@QAE@ABV01@@Z40
> libCint.exp : error LNK2001: unresolved external symbol
> _CTA3?AVlength_error@std
> @@
> libCint.exp : error LNK2001: unresolved external symbol
> _CTA3?AVout_of_range@std
> @@
> libCint.exp : error LNK2001: unresolved external symbol
> _TI3?AVlength_error@std@
> @
> libCint.exp : error LNK2001: unresolved external symbol
> _TI3?AVout_of_range@std@
> @
> bin\libCint.dll : fatal error LNK1120: 8 unresolved externals
> make: *** [lib/libCint.dll] Error 96
>
> An #include <exception> doesn't solve that problem. There are two things
> I don't understand with that:
> * why does the linker search for the symbol std::length_error and not
> length_error (without std::)?
> * why is the exception stuff not in MSVCIRT.LIB, the multi threaded
> dynamic link default library that supports the old iostream library
> (instead of the new std c++ lib)
>
> MS states clearly that the old iostream library (e.g. <iostream.h>) and
> the new std c++ lib are incompatible, and only one will be used at a
> time to search for symbols. If MSVC finds any #include<..h> (like
> <iostream.h> or <strstream.h>) it will use the old one. Maybe exception
> is not part of the old library? I really don't know, all I could find is
> that exception _is_ part of the _new_ std c++ library, but that still
> doesn't tell me whether it's also in the old iostream lib. Do you happen
> to know that?
>
> Hope we can figure this one out.
> Cheers, Axel.
>
>



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:22 MET