[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).


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.