Traté de escribir una simple aplicación Qt como esto:¿Por qué esta aplicación Qt simple no vincula
main.cpp:
#include <QApplication>
class MyApp : public QApplication {
Q_OBJECT
public:
MyApp(int argc, char* argv[]);
};
MyApp::MyApp(int argc, char* argv[]) :
QApplication(argc,argv) {
}
int main(int argc, char* argv[]) {
MyApp app(argc,argv);
return app.exec();
}
Pero cuando traté de compilar y vincularlo con Qt creador 2.3.1 (Qt 4.7.4) consigo 3 errores "símbolo externo sin resolver":
-
main.obj:-1: error: LNK2001: unresolved external symbol
""public: virtual struct QMetaObject const * __thiscall MyApp::metaObject(void)const "
([email protected]@@[email protected]@XZ)". -
main.obj:-1: error: LNK2001: unresolved external symbol
""public: virtual void * __thiscall MyApp::qt_metacast(char const*)"
([email protected]@@[email protected])". -
main.obj:-1: error: LNK2001: unresolved external symbol
""public: virtual int __thiscall MyApp::qt_metacall(enum QMetaObject::Call,int,void * *)"
([email protected]@@[email protected]@@[email protected])".
I think they are somehow related to the MetaObjectCompiler of Qt, but I can't figure out a solution. I know it's not considered good programming style in c++ to put declarations and definitions in one file, but that's not the point here. In my opinion it should be possible since there is nothing syntactically wrong here.
ha cambiado 'compilar' a 'enlace' ya que este no es un problema del compilador. – stijn