- 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)
When creating a library with Qt/Windows and using it in an application, then there is a link error regarding symbols which are in the library
When seeing errors like the following:
- MyObj.obj : error LNK2019: unresolved external symbol "public: static
- struct QMetaObject const MyObj::staticMetaObject"
- (?staticMetaObject@MyObj@@2UQMetaObject@@B) referenced in function "class
- MyObj * __cdecl qobject_cast<class MyObj *>(class QObject *)"
it is probably a result of the linker not finding the symbols from the library. You need to make sure that the symbols in your library are properly exported when the library is created. Subsequently imported when you are linking against the library, so you should have something like the following in a header file in your library:
- #if defined TEST
- #define TEST_COMMON_DLLSPEC __declspec(dllexport)
- #else
- #define TEST_COMMON_DLLSPEC __declspec(dllimport)
- #endif
and use it in the classes that you wish to make available to the application like:
Then add to your library’s .pro file the following line so it knows that the
symbols need to be exported in this case:
- DEFINES += TEST
See the following wiki page [developer.qt.nokia.com] for more information and a complete example.

No comments