I’m developing a Windows Mobile 6.5 application with MSVisual Studio 2008 Professional and Qt Visual Studio add-in installed.
I have a class with slots and signals, so I put Q_OBJECT in its header. If I build the project it compiles but doesn’t link fine. I’m getting this errors:
- (...)error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __cdecl(...)
- (...)error LNK2001: unresolved external symbol "public: virtual void * __cdecl(...)
- (...)error LNK2001: unresolved external symbol "public: virtual int __cdecl(...)
I’ve readen in a guide of Qt this:
If this ever happens to you, run qmake again to update the makefile, then
rebuild the application.
But I don’t know what I must do if I work with MSVisual Studio 2008 Professional and Qt Visual Studio add-in installed.
Thank you very much,
It’s not really necessary, but works well with the Visual Studio AddIn.
If you import a .pro file, the VS project will be regenerated from scratch and you are loosing all modifications you did manually (optimizations, special path settings and so on). Most times you will have added new classes and forms to your project and want to pull them into the VS project. This is where the “import .pri into current project” of the AddIn comes in. It leaves your settings as is and just add/remove the sources and adds the moc and uic steps if necessary.
The import step is also necessary, if you add the Q_OBJECT macro to a class later on.
If you are on the command line and use nmake to compile your project, all this “magic” is not necessary then; just re-run qmake.