Я получаю следующую ошибку компоновщика при создании моего приложения.Ошибка компоновщика Q_OBJECT!
HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " ([email protected]@@[email protected]@XZ) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" ([email protected]@@[email protected]) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) File not found : HIMyClass.obj
Мой класс декларации как
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
Когда я комментирую Q_OBJECT ошибка линкера уходит (и, очевидно, я не могу использовать сигналы и слоты). Я использую Qt Creator как IDE и Qt 4.5.3. Когда я даю Rebuild All это определенно, что QMake будет называться. Я предполагаю, что генерация файлов moc_ * - вот где проблема. Я использую Windows XP и cl в качестве компилятора.
Что может быть причиной этой ошибки компоновщика?
Возможно 'Файл не найден: HIMyClass.obj' сообщите нам, что Qt Creator не видит файлы moc/obj/temp? – mosg
Действительно, повторите qmake. Кроме того, проверьте отсутствие или дополнительные символы «\» в вашем файле .pro. – andref