Kurzantwort: das war ein Irrtum.. den in der FAQ beschriebenen Weg reicht.
Langantwort:
Frueher (Sun Compiler um Jahr 2000) erstellte der Compiler die vtable beim (virtuellen) Destruktor (Objektdatei), weil dies die einzige verlaessliche Stelle war (Default-Kontruktor kann fehlen.. aber ein virtueller Destruktor sollte beim Einsatz virtueller Methoden schon vorhanden sein).
Nichts desto trotz: beim gcc laeuft dies 1. anderst (das vtable-Handling haengt vom Compiler ab) und 2. heutzutage auch beim Sun-Compiler (wie ein kurzer Test ergab). Ich habe allerdings keine Ahnung, was genau in der moc_x-Datei den Compiler veranlasst, in der moc_x.o-Objekt-Datei eine vtable zu erstellen (und in anderen Objekt-Dateien nicht..).
Falls jemand weiss wie das funktioniert waere ich an einer Aufloesung interessiert (ich kann die vtable mit "nm *.o" auf Linux nicht mal finden.. auf Solaris gibts ein _classXy_vtbl_-Symbol, der GCC hingegen erstellt nichts aehnliches).
Ach ja: Kurzantwort 2: ein virtueller Destruktor hilft zwar nicht beim besagten Linkerfehler, ist aber trotzdem eine gute Sache
