Qt Creator links 32 bit dlls to a 64 bit application



  • In Qt Creator 3.5.0 I can build a 64 bit application and run it successfully from Qt Creator (using the green run button).

    However when I start the executable in the build-myproject-Desktop_Qt_5_5_0_MSVC2013_64bit-Release\release direcory directly I get an error that the application can not be started. Using the Dependency Walker tool I see that the 32 bit versions of the Qt5 dlls are linked.

    In the direcory build-myproject-Desktop_Qt_5_5_0_MSVC2013_64bit-Release I see in Makefile.Release LIBS = /LIBPATH:C:\Qt\5.5\msvc2013_64\lib C:\Qt\5.5\msvc2013_64\lib\Qt5Widgets.lib C:\Qt\5.5\msvc2013_64\lib\Qt5Gui.lib C:\Qt\5.5\msvc2013_64\lib\Qt5Core.lib so that looks OK.

    What's wrong?


  • Lifetime Qt Champion

    Hi,

    When starting an application from explorer you need to follow the same steps you would for deploying that application.

    A quick and easy way to do that by using the windeployqt helper program.



  • Hi, for a normal Qt installation, starting your app outside of Qt Creator should not be possible, because there are no path set to Qt dlls, or because you have not yet run windeployqt on your app. So Dependency Walker is just guessing what bit flavor of Qt5 dlls the app needs.

    To start your app outside of Qt Creator, you can open a CMD window:
    C:\Qt\5.5\msvc2013_64\bin\qtenv2.bat
    then cd to your build project and try starting your app from the same CMD window.


Log in to reply
 

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