Recibo el siguiente error de vinculador cuando construyo mi aplicación.Q_OBJECT error de enlazador!
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
Mi declaración de la clase es como
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
Cuando comento Q_OBJECT el error de vinculador se apague (y, obviamente, no soy capaz de utilizar señales y ranuras). Estoy usando Qt Creator como IDE y Qt 4.5.3. Cuando doy Rebuild All es definitivo que se llamará QMake. Supongo que es la generación de archivos moc_ * donde reside el problema. Estoy usando Windows XP y cl como el compilador.
¿Cuál es la razón detrás de este error del enlazador?
Quizás 'Archivo no encontrado: HIMyClass.obj' nos dice que Qt Creator no vio archivos moc/obj/temp? – mosg
Realmente, vuelva a ejecutar qmake. Además, verifique si hay caracteres "\" faltantes o adicionales en su archivo .pro. – andref