Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!ncar!gatech!utkcs2!jamsun.ic.ornl.gov!mullens From: mullens@jamsun.ic.ornl.gov (James A. Mullens) Newsgroups: comp.lang.c++ Subject: Need help, missing virtual tables, Sun C++ 2.0 Keywords: Sun Message-ID: <1991May8.224321.12580@cs.utk.edu> Date: 8 May 91 22:43:21 GMT Sender: usenet@cs.utk.edu (USENET News Poster) Organization: Oak Ridge National Laboratory Lines: 39 First, would anyone posting an answer also point me to a "frequently asked questions" list and a Sun C++ 2.0 compiler bug list? The problem is that the loader complains of undefined symbols such as ___vtbl__23SGob__BaseGob__ViewMngr__7WinMngr, meaning (I think) the virtual function table for class WinMngr (a class derived from ViewMngr, BaseGob, and SGob). All modules compile without warnings, even with the "warn about everything" flag turned on. Only "vtbl" symbols are missing. I believe I am passing all modules to the loader, especially the WinMngr.o module. I also deleted all object files and tried to rebuild the application from scratch (just in case it was a makefile dependency problem) without luck. I suspect that this has something to do with pure virtual functions. On the other hand, this version of the C++ compiler complains whenever a class tries to inherit a pure virtual function -- I have no such warnings, and I have no pure virtual specifications in any class I try to instantiate (WinMngr). And the loader does not complain about every class I try to instantiate (e.g. ViewMngr). The only class using multiple inheritance is BaseGob (from SGob and Dynamic, SGob is abstract and Dynamic is not). Another thought has occurred to me. The actual parentage of WinMngr is Named -> SGob -> BaseGob -> ViewMngr -> WinMngr. "Named" does not show up in the vtbl (this is not too surprising since Named has no virtual functions). However, Named's child SGob is abstract whereas Named is not abstract. Could this be causing a problem? One final thought... SGob, while abstract, has some static members and member functions (accessors for the static members) which are called directly from my main program. Could this be causing a problem? If no one has any hints for me I will try to construct a simple piece of code that illustrates the problem and post it. Thanks... jim mullens jcm@ornl.gov