Anyone with greater knowledge of C++ than me out there? I'm
getting a linking error:
/usr/bin/ld:
Unresolved:
FormCopyright::SigC::ObjectScoped virtual table
FormCopyright virtual table
collect2: ld returned 1 exit status
make[2]: *** [lyx] Error 1
FormCopyright is derived from FormBase:
#include "FormBase.h"
class FormCopyright : public FormBase {
public:
FormCopyright(LyXFunc * c, Dialogs * d, Signal0<void> & signal)
: FormBase( c, d, signal ) {}
virtual ~FormCopyright();
private:
virtual void build(); // Build the dialog
};
In turn, FormBase contains the code:
FormBase::FormBase(LyXFunc * c, Dialogs * d, Signal0<void> & signal )
: dialog_(0), lf_(c), d_(d), h_(0)
{
signal.connect(slot(this, &FormBase::show));
}
void FormBase::show()
{
if( ! dialog_ )
{
build();
fl_set_form_atclose(dialog_->form, FormBase::WMHideCB, 0);
}
etc...
}
The code compiles fine but the linker seems to be
complaining that the build() called in FormBase::show()
from the FormBase constructor is a virtual function. Is
this right? Can I not connect signals/slots if this is
the case? What is going on??
Any help much appreciated.
Angus