[Resolved]Qt 4.8.2 + vs2010 + static + project build issues LNK2019 (QString) & LNK2005



  • I had successfully compiled a static version of qt4.8.2 by following the instructions from this "post ":http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/

    configure command I used to compile Qt:
    @C:\Qt\vs2010-4.8.2-static>configure -static -debug-and-release -opensource -no-q
    t3support -qt-sql-sqlite -phonon -phonon-backend -platform win32-msvc2010@

    However, I encountered a list of compile errors from my project, LNK2019 & LNK2005 related.

    I attached the error messages at the bottom.

    For the LNK2005 related errors , I included LIBCMT at Linker->Input->Ignore Specific Default Libraries, and its related errors disappear from the error list, but is that the right way to do it?
    For the LNK2019 related errors, I couldn't resolve them, please give me some instructions.

    Here is my project settings:
    @
    C/C++ -> Code Generation -> Runtime Library: Multi-threaded Debug (/MTd)
    C/C++ -> Language -> Treat WChar_t As Built in Type: No ( /Zc:wchar_t- )
    Linker-> Input -> Additional Dependencies:
    Imm32.lib
    Ws2_32.lib
    winmm.lib
    qtmaind.lib
    QtCored.lib
    QtGuid.lib
    wsock32.lib
    @
    LNK2019 related error messages:
    @
    Error 161 error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall QString::toStdString(void)const " (_imp?toStdString@QString@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "private: void __thiscall MainForm::on_actionConfiguration_triggered(void)" (?on_actionConfiguration_triggered@MainForm@@AAEXXZ) C:\Working\ProjLocation\test\mainform.obj test
    Error 163 error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QString & __thiscall QString::append(char const *)" (_imp?append@QString@@QAEAAV1@PBD@Z) referenced in function "private: void __thiscall MainForm::summaries_series(struct series const *)" (?summaries_series@MainForm@@AAEXPBUseries@@@Z) C:\Working\ProjLocation\test\mainform.obj test
    Error 162 error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QString::QString(char const *)" (_imp??0QString@@QAE@PBD@Z) referenced in function "private: void __thiscall MainForm::on_actionLogin_triggered(void)" (?on_actionLogin_triggered@MainForm@@AAEXXZ) C:\Working\ProjLocation\test\mainform.obj test
    @
    LNK2005 related error messages:
    @Error 12 error LNK2005: __set_invalid_parameter_handler already defined in LIBCMTD.lib(invarg.obj) C:\Working\ProjLocation\test\LIBCMT.lib(invarg.obj) test

    <more LIBCMT & LIBCMTD related errors.....>

    Error 17 error LNK2005: "void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" (?_invalid_parameter@@YAXPBG00II@Z) already defined in LIBCMTD.lib(invarg.obj) C:\Working\ProjLocation\test\LIBCMT.lib(invarg.obj) test
    @

    [edit] Code wrappers added for clarity. Please do next time, koahnig



  • It looks like one of the library at least linked in the project is using libcmt. Did you check that you are only linking debug builds in your project?



  • [quote author="lfdm" date="1339016060"]It looks like one of the library at least linked in the project is using libcmt. Did you check that you are only linking debug builds in your project?[/quote]

    Thank you for your reply Ifdm. You are right about the LNK2005 issue. How about the LNK2019 errors? I could not resolve them.



  • The default Qt project's properties created by the vs add-in was different than before, after I re-compiled the Qt source. Therefore, I copied the new properties setting from the new project to my old project, and problem solved.


Log in to reply
 

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