Important: Please read the Qt Code of Conduct -

Deploying Qt 5.6 on Windows problem

  • I updated from Qt 5.4 to Qt 5.6 and wanted to deploy my application as I did so many times before using the windeployqt tool. I never had issues with it and everything worked out of the box but not this time. I can't figure out what the issue is or how to fix it so any help would be highly appreciated.

    I'm using Qt 5.6 with MinGW 4.9.2 32-bit on a Windows 10 64-bit machine. After I run windeployqt I get the expected result:

    However, when I double-click the executable I get the following error: The program can't start because libgcc_s_dw2-1.dll is missing from your computer.. Fair enough, I manually copy that file from C:\Qt\5.6\mingw49_32\bin to the directory and then I get the next error: The application was unable to start correctly 0xc000007b. And this is where I am completely lost. Starting the executable from the terminal doesn't give any debug message. It just doesn't do anything.

    Can anybody help me with that? I am completely lost.

  • Hi, guessing you have Code::Blocks installed? (or something similar installed on May 11th).
    it's possible you have 2 different (one 32-bit and one 64-bit) versions of MinGW installed. The file libgcc_s_sjlj-1.dll shouldn't be there (it doesn't like to be together with libgcc_s_dw2-1.dll) see more here](

  • @hskoglund Thank you for your reply.
    I don't have Code::Blocks installed but I have other MinGW versions (through cygwin) on my system. However libgcc_s_sjlj-1.dll was copied to that directory by the windeployqt tool. I assume that it pulls the correct files from the MinGW distribution that comes with the Qt installation (the one from C:\Qt\5.6\mingw49_32\bin\).

    Anyway, I removed the file but the issue remains. How do I make sure that I get the proper version of the DLLs (32-bit vs. 64-bit)? I assumed that windeployqt would take care of all of this.

  • Hmm windeployqt can get confused where to pick up the compiler dlls.

    Looking at the MinGW files in your listing, these 2 important ones have the wrong date/time and size:
    (the other 2 libEGL.dll, libGLESV2.dll and opengl32sw.dll are correct).

    Try do the same with libstdc++-6.dll and libwinpthread-1.dll as you did with libgcc_s_dw2-1.dll, i.e. copy them manually from C:\Qt\56.\mingw49_32\bin

  • Well now it's actually working.
    Thank you very much, I appreciate your help a lot!

    Is there any way to tell windeployqt to only pick the DLLs from the MinGW distribution that came as part of the Qt installation? It seems to be a "pointless tool" otherwise (to exaggerate a bit).

  • FYI for others... I had the same issue when upgrading from 5.5 to 5.6. Copying those three files did the trick.

  • I am grateful that I came across this thread. It exactly solved my problem.

  • @Joel-Bodenmann Just an FYI for people that may stumble upon this topic. windeployqt picks the DLLs based on the PATH environment variable. That means putting $QT_INSTALL_DIR\Tools\mingw810_64\bin\ instead of C:\MinGW\bin will lead to windeployqt picking the DLLs that come with Qt. This approach requires removing the C:\MinGW\bin path from the environment variable. If you need to keep it there, maybe just put them both there and play with the order.