Hi all.  I am using glade and glademm to build a project.  I ran into
some trouble compiling it.  I had a window called MainWindow in a
class.  The compiler would give me the following error message when I
tried to compile:

 Undefined                     first referenced
  symbol                           in file
 MainWindow virtual table            MainWindow.o
 MainWindow::SigC::ObjectScoped virtual tableMainWindow.o
 
 ld: fatal: Symbol referencing errors. No output written to product
 collect2: ld returned 1 exit status
 *** Error code 1


After a considerable amount of work, I managed to solve the problem.  To
do this, I added all of the signal handler functions to the
MainWindow_Glade class as pure virtual .  I also removed the "friend
class MainWindow_Glade ;" declaration in MainWindow.

Myself and several experienced programmers I consulted to solve the
error are interested in knowing why glademm uses the friend feature
instead of pure virtual functions and inheritance in the classes it
generates.  In order to use the code, I have to hand-edit all of the
generated classes.  IMHO it would be better to avoid friends and declare
all of the signal handlers a pure virtual in the *_Glade class and
utilize the inheritance/polymorphism mechanisms to provide access to
them.

Thanks for your time,
-D

PS>  please CC me becuase I'm not on the devel list ([EMAIL PROTECTED])

+---------------------------------------------------------------------+
To unsubscribe from this list, send a message to [EMAIL PROTECTED]
with the line "unsubscribe glade-devel" in the body of the message.

Reply via email to