アプリケーションをビルドすると、次のリンカー エラーが表示されます。
HIMyClass.obj:: エラー: 未解決の外部シンボル "パブリック: 仮想構造体 QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " (?metaObject@CHIMyClass@@UBEPBUQMetaObject@@XZ) ファイルが見つかりません: HIMyClass.obj
HIMyClass.obj:: エラー: 未解決の外部シンボル "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" (?qt_metacast@CHIMyClass@@UAEPAXPBD@Z) ファイルが見つかりません: HIMyClass.obj
HIMyClass.obj:: エラー: 未解決の外部シンボル "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CHIMyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z)ファイルが見つかりません: HIMyClass.obj
私のクラス宣言は次のようなものです
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
Q_OBJECT にコメントすると、リンカ エラーが発生します (明らかに、シグナルとスロットを使用できません)。Qt Creator を IDE として使用し、Qt 4.5.3 を使用しています。Rebuild Allを指定すると、 QMakeが呼び出されることは間違いありません。moc_* ファイルの生成に問題があると思います。Windows XP と cl をコンパイラとして使用しています。
このリンカ エラーの背後にある理由は何ですか?