home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / gnu / g / bug / 2307 < prev    next >
Encoding:
Internet Message Format  |  1993-01-21  |  2.4 KB

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