Qt World Summit: Submit your Presentation

Problem converting app from 64 bit to 32 bit architecture

  • Hello.
    I built an app using Qt 5.12 and MinGW 7.3 x64 bit. In order to have it in 32 bit I downloaded the Qt 5.10 and MinGW 5.3 x32 bit using Qt Maintenance Tool, created a new project using this kit and took all the libraries, sources and form files from the x64 bit project. Compiled it, then released it. I deployed the app using the windeployqt tool from MinGW 5.3 bin folder but when I attempt to run it I receive:
    "The application was unable to start correctly. (0xc0000007b)"
    The app works in Qt in Release mode. What have I done wrong and what should I do to make it work? I am up against a deadline now, so quick help is much appreciated.

    Thank you! :)

    EDIT: I found a solution. I added these dlls:
    From QTFolder\Tools\mingw530_32\bin and it seems to work now. However if you do feel I might be missing something out here and this app might not run on someone else's PC, please feel free to offer a suggestion. :)

  • Lifetime Qt Champion

    You did the right thing running windeployqt.
    Often the mingw runtime are missing so copying them seems fine. (also from right place)
    I like this site for deployment info

  • The installer Works, the program runs, however I have a situation. The Release app in Qt can use the ODBC Connector but the deployed app cannot. Do you have any idea?

  • Hi, it could be because the ODBC plugins is missing, try copying the sqldrivers folder from the MinGW plugins directory to your project directory (i.e. put it in the same place as the platforms folder)

  • It does not work. I already had the sql drivers folder in there with 4 dll files but I get Driver not loader error. I am rather desperate because the deadline is in 3 hours. I can give you other details if you need.

  • Well if you have it working from Qt Creator, start it there and then run ListDLLs ( https://download.sysinternals.com/files/ListDlls.zip
    locate the .exe file in the list and take a photo of all the .dlls it loads (it's shown in the lower pane of ListDLLs)
    Then start the faulty .exe file and compare the .dlls loaded, if the're some missing that's your culprit

  • Lifetime Qt Champion


    You can start the application with the QT_DEBUG_PLUGINS environment variable set to 1.

    It will show more information about what is going on.

  • Lifetime Qt Champion

    @Paul-Orasan To add to others: if your 64bit setup is working then you can compare both deployed folders and check whether there are any differences.

Log in to reply