undefined reference to `<クラス名>::<シグナル名>'

問題

シグナルを定義してビルドすると下記のエラーが発生する。

undefined reference to `<クラス名>::<シグナル名>'

原因

クラス定義に Q_OBJECT キーワードを記述していないため。

対策

クラス定義に Q_OBJECT キーワードを記述する。

class MyClass
{
    Q_OBJECT
    ...
signals:
    void MySignal();
    ...
}

参考文献