[SOLVED] Linker Error While linking application(form of DLL) with Qt libs
-
Hi All,
I am new to Qt(and to this group) and I am currently trying to link my software component libs(propreitary) with Qt Libs to form a DLL which will further be used by my application.
In doing so I am facing linker issues. I did check if the symbols are present in the libs and Yes they are present in Libs, but still its unable to link.
I am currently using Qt 4.8.4 on Windows using Visual Studio command prompt.
The linker command on make is as follows.COMMAND:
" link c:/my_sw_component/my_sw_components.obj c:/my_sw_component/my_sw_component.lib e:/platform/platform.lib c:/my_sw_component/platform.res
e:/workspace/qtwebkit/qt-4.8.4/lib/QtCored4.lib
e:/workspace/qtwebkit/qt-4.8.4/lib/QtGuid4.lib
e:/workspace/qtwebkit/qt-4.8.4/lib/QtNetworkd4.lib
e:/workspace/qtwebkit/qt-4.8.4/lib/QtWebkitd4.lib
kernel32.lib gdi32.lib user32.lib WinInet.lib
/nologo /DLL /subsystem:windows
/libpath:e:/workspace/lib/
/libpath:"C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib"
/fixed:no /incremental:no /PDB:NONE /SAFESEH:NO /nodefaultlib /debug /map:c:/my_sw_component/my_sw_component.map /out:c:/my_sw_component/my_sw_component.dll"LINKER ERRORS:
Creating library c:/my_sw_component/my_sw_component.lib and object c:/my_sw_component/my_sw_component.exp
webkitbrowser.lib(qresourcemanager.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(qnetworkreplyfileimpl.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(qnetworkcookiejar.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(keyboard.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(webpage.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(pushbutton.obj) : error LNK2001: unresolved external symbol "private: static struct QByteArray::Data QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)
webkitbrowser.lib(qresourcemanager.obj) : error LNK2001: unresolved external symbol "private: static struct QString::Data QString::shared_null" (?shared_null@QString@@0UData@1@A)
webkitbrowser.lib(qnetworkreplyfileimpl.obj) : error LNK2001: unresolved external symbol "private: static struct QString::Data QString::shared_null" (?shared_null@QString@@0UData@1@A)
webkitbrowser.lib(qnetworkcookiejar.obj) : error LNK2001: unresolved external symbol "private: static struct QString::Data QString::shared_null" (?shared_null@QString@@0UData@1@A)
?shared_null@QString@@0UData@1@A)
webkitbrowser.lib(qresourcemanager.obj) : error LNK2001: unresolved external symbol "public: char __thiscall QChar::toAscii(void)const " (?toAscii@QChar@@QBEDXZ)
webkitbrowser.lib(qnetworkreplyfileimpl.obj) : error LNK2001: unresolved external symbol "public: char __thiscall QChar::toAscii(void)const " (?toAscii@QChar@@QBEDXZ)
webkitbrowser.lib(qnetworkcookiejar.obj) : error LNK2001: unresolved external symbol "public: char __thiscall QChar::toAscii(void)const " (?toAscii@QChar@@QBEDXZ)
webkitbrowser.lib(keyboard.obj) : error LNK2001: unresolved external symbol "public: char __thiscall QChar::toAscii(void)const " (?toAscii@QChar@@QBEDXZ)
webkitbrowser.lib(webpage.obj) : error LNK2001: unresolved external symbol "public: char __thiscall QChar::toAscii(void)const " (?toAscii@QChar@@QBEDXZ)I did not find any suitable answer in net.
Please provide me any inputs on how to resolve this error.
Thanks in advance for help.
Regards,
Techtotie -
Finally found the solution to this problem.
It was because I compiled my application using wrong compiler defines
QT_NODLL and QT_MAKEDLL.Instead it had to be compiled with QT_DLL and QT_SHARED.(for proper dllexport and dllimport configurations refer qglobal.h to decide which compiler defines to use).