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

Reply via email to