При создании приложения я получаю следующую ошибку компоновщика.
HIMyClass.obj:: error: неразрешенный внешний символ "общественности: виртуальная структура QMetaObject const * __thiscall CHIMyClass:: metaObject (void) const" (? Метаобъект @CHIMyClass @@UBEPBUQMetaObject @@XZ) Файл не найден: HIMyClass.obj
HIMyClass.obj:: error: неразрешенный внешний символ "общественности: виртуальный void * __thiscall CHIMyClass:: qt_metacast (charconst *)" (? qt_metacast @CHIMyClass @@UAEPAXPBD @Z) Файл не найден: HIMyClass.obj
HIMyClass.obj:: error: неразрешенный внешний символ "общественности: виртуальный int __thiscall CHIMyClass:: qt_metacall (перечисление 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 как компилятор.
Что может быть причиной этой ошибки компоновщика?