This puzzle probably has a simple answer.

I have a class QVideoOutput. In qvideooutput.h I have:

class QVideoOutput : public QObject
{
public:
QVideoOutput(QObject * parent=0, int source=0, vtkRenderWindow *VTKrenWin=0);
...
signals:
void CB_signal();

and in MainWindow.cpp:

videoVTK = new QVideoOutput(this, VTK_SOURCE, renWin);
connect(videoVTK,SIGNAL(CB_signal()),this,SLOT(set _CheckBox_recording_off()));

So far so good - this builds successfully. But when I add code to emit the signal in a function in qvideooutput.cpp:

emit CB_signal();

I get a link error:

qvideooutput.obj : error LNK2019: unresolved external symbol "protected: void __thiscall QVideoOutput::CB_signal(void)" (?CB_signal@QVideoOutput@@IAEXXZ) referenced in function "public: void __thiscall QVideoOutput::stopRecorder(void)" (?stopRecorder@QVideoOutput@@QAEXXZ)
release\dna_gui.exe : fatal error LNK1120: 1 unresolved externals

I have done similar things in other programs, which worked, but obviously there's something different about this situation.