Article View: gnu.g++.bug
Article #1395Re: Undefined symbol error
From: Ulrich Grepel
Date: Thu, 21 Jan 1993 23:21
Date: Thu, 21 Jan 1993 23:21
51 lines
2523 bytes
2523 bytes
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
Technical Details
Message-ID:
<9301211726.AA26505@aida.intellektik.informatik.th-darmstadt.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!intellektik.INformatik.TH-darmstadt.DE!uliShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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>