Linkage error in tst_qjsonrpcserver.exe when building the whole library out of the box

Issue #15 resolved
Meir Tseitlin created an issue

QT: 5.3.1

    if not exist debug\tst_qjsonrpcsocket.exe_manifest.bak link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\tst_qjsonrpcsocket.exe.embed.manifest /OUT:debug\tst_qjsonrpcsocket.exe @C:\Users\Miro\AppData\Local\Temp\tst_qjsonrpcsocket.exe.72492.5163.jom
    if exist debug\tst_qjsonrpcserver.exe.embed.manifest copy /Y debug\tst_qjsonrpcserver.exe.embed.manifest debug\tst_qjsonrpcserver.exe_manifest.bak
    if exist debug\tst_qjsonrpcservice.exe_manifest.bak del debug\tst_qjsonrpcservice.exe_manifest.bak
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\tst_qjsonrpcserver.exe.embed.manifest /OUT:debug\tst_qjsonrpcserver.exe @C:\Users\Miro\AppData\Local\Temp\tst_qjsonrpcserver.exe.78532.5632.jom
    cd qjsonrpchttpclient\ && ( if not exist Makefile C:\Qt\Qt5.3.1\5.3\msvc2010_opengl\bin\qmake.exe C:\Temp\qjsonrpc\tests\auto\qjsonrpchttpclient\qjsonrpchttpclient.pro -spec win32-msvc2010 CONFIG+=debug -o Makefile ) && C:\Qt\Qt5.3.1\Tools\QtCreator\bin\jom.exe -f Makefile
testservices.obj : error LNK2019: unresolved external symbol "public: __thiscall QJsonRpcServiceRequest::QJsonRpcServiceRequest(void)" (??0QJsonRpcServiceRequest@@QAE@XZ) referenced in function "public: __thiscall TestDelayedResponseService::TestDelayedResponseService(class QObject *)" (??0TestDelayedResponseService@@QAE@PAVQObject@@@Z)
jom: C:\Temp\build-qjsonrpc-Desktop_Qt_5_3_MSVC2010_OpenGL_32bit-Debug\tests\auto\qjsonrpcserver\Makefile.Debug [debug\tst_qjsonrpcserver.exe] Error 1120
testservices.obj : error LNK2019: unresolved external symbol "public: __thiscall QJsonRpcServiceRequest::~QJsonRpcServiceRequest(void)" (??1QJsonRpcServiceRequest@@QAE@XZ) referenced in function "public: void __thiscall TestDelayedResponseService::delayedResponse(void)" (?delayedResponse@TestDelayedResponseService@@QAEXXZ)
testservices.obj : error LNK2019: unresolved external symbol "public: class QJsonRpcServiceRequest & __thiscall QJsonRpcServiceRequest::operator=(class QJsonRpcServiceRequest const &)" (??4QJsonRpcServiceRequest@@QAEAAV0@ABV0@@Z) referenced in function "public: void __thiscall TestDelayedResponseService::delayedResponse(void)" (?delayedResponse@TestDelayedResponseService@@QAEXXZ)
testservices.obj : error LNK2019: unresolved external symbol "public: bool __thiscall QJsonRpcServiceRequest::isValid(void)const " (?isValid@QJsonRpcServiceRequest@@QBE_NXZ) referenced in function "public: void __thiscall TestDelayedResponseService::delayedResponse(void)" (?delayedResponse@TestDelayedResponseService@@QAEXXZ)
testservices.obj : error LNK2019: unresolved external symbol "public: bool __thiscall QJsonRpcServiceRequest::respond(class QVariant)" (?respond@QJsonRpcServiceRequest@@QAE_NVQVariant@@@Z) referenced in function "private: void __thiscall TestDelayedResponseService::delayedResponseComplete(void)" (?delayedResponseComplete@TestDelayedResponseService@@AAEXXZ)
testservices.obj : error LNK2019: unresolved external symbol "public: bool __thiscall QJsonRpcServiceRequest::respond(class QJsonRpcMessage const &)" (?respond@QJsonRpcServiceRequest@@QAE_NABVQJsonRpcMessage@@@Z) referenced in function "private: void __thiscall TestDelayedResponseService::delayedResponseWithClosedSocketComplete(void)" (?delayedResponseWithClosedSocketComplete@TestDelayedResponseService@@AAEXXZ)
testservices.obj : error LNK2019: unresolved external symbol "public: class QJsonRpcMessage __thiscall QJsonRpcServiceRequest::request(void)const " (?request@QJsonRpcServiceRequest@@QBE?AVQJsonRpcMessage@@XZ) referenced in function "private: void __thiscall TestDelayedResponseService::delayedResponseWithClosedSocketComplete(void)" (?delayedResponseWithClosedSocketComplete@TestDelayedResponseService@@AAEXXZ)
debug\tst_qjsonrpcserver.exe : fatal error LNK1120: 7 unresolved externals

Comments (5)

  1. Matt Broadstone

    In src/qjsonrpcservice.h line 27 can you try changing

    class QJsonRpcServiceRequest
    

    to

    class QJSONRPC_EXPORT QJsonRpcServiceRequest
    

    looks like I missed a visibility export, and Windows is very angry about issues like that :)

  2. Log in to comment