Warning LNK 4217

  • Hi,
    I'm building with VS 2010 an application that uses Qt 4..6.3, and i get a warning :

    warning LNK4217: locally defined symbol ?qt_call_post_routines@@YAXXZ (void __cdecl qt_call_post_routines(void))
    imported in function "public: virtual __thiscall QApplication::~QApplication(void)" (??1QApplication@@UAE@XZ)C:\localSVN\branch_for_MSVS2010\OEM_Tools\Modules\xFramework\Test\QtGuid.lib(qapplication.obj)

    What exectly is this warning means and how can i get rid of it ?


  • It's a linking error. Have you linked the Qt modules?

  • Did you build the Qt libs manually?
    There are no prebuilt binaries for VS 2010 for Qt 4.6.3 and you must not mix binaries from different VS versions.

  • No i'm compiling a pre-build version of qQ 4.6.3 with the option v90 in the platform toolset, so it can compile something that was built in VS2008.

  • Sorry, I don't understand what you're doing. Do you compile Qt or your application?

    If you compile Qt, do not use the sources bundled in a prebuilt package for another compiler suite or version, but get the vanilla sources (qt-everywhere-xxx-src).

    While it may work to use VS2008 object code in VS2010 with some trickery, it is generally not recommended and you are likely to get no support for that here - despite being told to build Qt in VS2010 manually.

    Are you bound to Qt 4.6.3? It's quite old, and to my knowledge VS2010 was not supported with that version. I would recommend to use the most recent version 4.7.4, which can be built with VS2010 or 4.8 RC which has prebuilt binaries for VS2010.

Log in to reply

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