home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!intellektik.INformatik.TH-darmstadt.DE!uli
- From: uli@intellektik.INformatik.TH-darmstadt.DE (Ulrich Grepel)
- Newsgroups: gnu.g++.bug
- Subject: Re: Undefined symbol error
- Date: 21 Jan 1993 18:21:50 -0500
- Organization: GNUs Not Usenet
- Lines: 52
- Sender: daemon@cis.ohio-state.edu
- Approved: bug-g++@prep.ai.mit.edu
- Distribution: gnu
- Message-ID: <9301211726.AA26505@aida.intellektik.informatik.th-darmstadt.de>
-
- In article <9212291815.AA06057@hrt213.brooks.af.mil> you write:
- |> I've been working on compiling RogueWave's Tools.h++ library
- |> using g++; the lib compiled flawlessly under gcc 2.3.3, with libg++-2.3.
- |> However, when linking a test program, I get the following:
- |>
- |> ld: Undefined symbol
- |> __vt$10ostrstream$3ios
- |> collect: /usr/bin/ld returned 2 exit status
- |> *** Error code 1
- |>
- |> I called RogueWave and confirmed it's not a symbol in their
- |> library. Tech support was able to confirm that they use calls to ios
- |> which should be supplied by libg++, so it's something wrong with
- |> libg++-2.3. Anyone have any insight, or (hopefully) a fix?
- |>
- |> -- Cerebus <tjm@hrt213.brooks.af.mil>
- |> "Learning C++ as I go..."
- |>
- |>
-
-
- We have almost the same problem here: We try to compile InterViews 3.1
- and some of the larger programs fail due to
-
- __vt$7istream$3ios
-
- missing. As far as we can guess this is a virtual function table for the
- iostream-Library. The libg++-2.3-WHATSNEW file says that they changed
- the inheritance structure of the iostream library. They now use multiple
- inheritance with virtual base classes. If you look into iostream.h, you
- can see that each of istream and ostream are declared as using ios as
- it's virtual base class. So any other class inheriting both of istream
- and ostream (like iostream) share a single copy of the ios object, and
- not two, one for each of it's parents. Somehow I think the compiler
- (gcc 2.3.3) can't cope with that concept and 'forgets' to put the virtual
- function table for the ios functions of the istream class into the
- appropriate object file that then finds its way into libg++.a. Anyhow,
- unfortunately we do not have a solution, but we desperately need one.
- If you got any reply with more help than ours, please mail
-
- alex@intellektik.informatik.th-darmstadt.de
-
- AND
-
- uli@intellektik.....
-
- (not everyone of us is here at every time, and it's kind of urgent...)
-
- Thanks,
-
- Alex & Uli
-
-