- All (478)
- jom (0)
- Qt Linguist (7)
- Qt Eclipse Integration (9)
- Qt Designer (7)
- Qt Creator (4)
- Qt build system: qmake (31)
- Qt build system: configure (3)
- Qt Assistant (5)
- Printing (4)
- Porting from Qt 3 to Qt 4 (1)
- Plugins (7)
- Qt Visual Studio AddIn (2)
- Qt/MFC Migration (2)
- QtScript (3)
- MDI (2)
- XML (1)
- Widgets (22)
- WebKit (5)
- Tools and Containers (2)
- Threads (2)
- Text Handling (10)
- SQL (6)
- QtTest (1)
- QtService (1)
- Platform: Windows (49)
- Platform: Unix (16)
- Platform: Mac OS X (18)
- Image Formats (2)
- I/O (2)
- Graphicsview (8)
- Font handling (9)
- Event System (18)
- Drag and Drop (4)
- Dialogs (6)
- Desktop integration (3)
- ActiveQt (3)
- Itemviews (60)
- Layout (4)
- Qt Quick (10)
- Qt SDK (1)
- Licensing (2)
- Platform: Embedded Linux (38)
- Painting (32)
- OpenGL (4)
- Object Model (6)
- Network (5)
- Multimedia (3)
- Miscellanous (23)
- Main Window (19)
- Look and Feel (23)
- Development (0)
- Getting Involved (0)
- Routines (0)
Why do I get linking errors issued from moc when building my project?
Errors like the following:
- Error 1 error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall myApp_qt::metaObject(void)const " (?metaObject@myApp@@UBEPBUQMetaObject@@XZ) myApp.obj myApp)
are typically issued by the moc [doc.qt.nokia.com] preprocessor and indicate that there is no moc-generated cpp file, or the moc-generated cpp-file is not compiled and linked into your project.
You can try regenerating the .vcproj file on the command line to see if this helps. This can have an effect in situations where the .vcproj file has not been updated with information about the moc file. Open the command prompt provided with Qt in the Start menu and you go to your project’s directory and type
- qmake -tp vc
- devenv yourProject.vcproj
to see if that helps.
The attached projects demonstrate the 2 possible ways of linking the moc generated code with your application. In the single main.cpp, the class declaration is in the .cpp file and we need to include the moc generated file into the application by adding the following line:
- #include "nameOfFile.moc"
In the .zip file, the class declaration is in the .h file and the moc output will then be put in a file called moc_myclass.cpp. This file should be compiled and linked as normal.

No comments