Deployment problems in Windows 8.1[SOLVED]
-
I have been using Qt Creator 5.2 on a notebook computer with Windows 7. I worked through various tutorials and successfully deployed and ran a program outside of the IDE. I recently acquired a new computer with Windows 8.1. I installed Qt Creator 5.4 on it and attempted to repeat the tutorial program deployed outside the IDE but encountered problems. The release version of the program ran successfully from the IDE but would not run outside it. Previously, with Windows 7/Qt Creator 5.2 I used Dependency Walker to identify the DLLs, (QT5core.dll and QT5Widgets.dll) necessary and added them to the C:\Windows\System32 folder and the program ran but this time the following DLLs were listed in Dependency Walker:
QT5CORE.DLL
QT5WIDGETS.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
LIBGCC_S_DW2-1.DLL
LIBSTDC++-6.DLL
IESHIMS.DLLWhen I attempted to run outside the IDE with Windows8.1/Qt Creator 5.4 the following DLLs were identified in error messages:
QT5CORE.DLL
QT5WIDGETS.DLL
QT5GUI.DLL
LIBWINPTHREAD-1.DLL
LIBGCC_S_DW2-1.DLL
LIBSTDC++-6.DLL
ICUDT53.DLL
ICUUC53.DLL
ICUIN53.DLLThis time adding these to the C:\Windows\System32 didn't work but I could add them to the same folder the executable program was in and the error messages were removed but when all were added this message was displayed:
ENTRY POINT NOT FOUND
The procedure entry point ZN10QArrayData10deallocateEPSjj could not be located in the dynamic link library.Dependency Walker associated this entry point with the QT5CORE.DLL file.
Settings:
Kit: Desktop Qt 5.4.0 MinGW 32 bit
Qt Version: Qt 5.4.0 MinGW 32 bit
Compiler: Min GW 4.9.1 32 bit GWI searched the forum for information on deployment and was referred to the Wiki Home page “Deploy_an_Application_on_Windows” which I had already reviewed . Is this an issue with Qt Creator 5.4? An issue with Windows 8.1? Could anybody suggest what I should try next? Thanks.
-
Hi, ZN10QArrayData10deallocateEPS_jj is a function used by the MinGW compiler but not Visual Studio, so it seems you have a Microsoft flavored Qt5Core.dll in your path :-(
EDIT: to clarify, your Win8.1 is fine, I just tested mixing a MinGW .exe file and Visual Studio Qt .dlls on my Windows XP and got the same error.
-
Hi,
To add to hskoglund, are you by any chance copying the Qt dlls from Qt Creator rather than the Qt you used to build your application ?
-
Thanks for your responses. I wasn't aware there were more than one file with the same name. When I used the other Qt5core.dll the program would run on the Windows 8 PC. However, it would not run on the Windows 7 notebook or a Windows XP laptop. I tried to install Qt 5.4.0 on the notebook and laptop but I received installation errors on both. I still could not get the program that runs fine on Windows 7 to run on Windows 8. I would like to develop programs with Windows 8 and run them on all three OS. Is that possible?
-
Are you deploying other dlls that are not part of Qt ?
-
These are the DLLs that I added to the release folder:
QT5CORE.DLL
QTWIDGETS.DLL
QT5GUI.DLL
LIBWINPTHREAD-1.DLL
LIBGCC_S_DW2-1.DLL
LIBSTDC++-6.DLL
ICUDT53.DLL
ICUUUC53.DLL
ICUIN53.DLLThe program runs on my desktop with Windows 8.1 but not on my laptop with Windows XP. It gives me this error message:
" This application failed to start because it could not find or load the Qt platform plugin "windows".
-
Then you're not deploying your application correctly.
See this fine wiki "entry":http://qt-project.org/wiki/Deploy_an_Application_on_Windows for more information
-
Just a quick note: On my end, if I use the "windeploy" command line tool from the Qt installation folder, I don't have to worry about copying the right .dll files. The tool does that automatically. Earlier in 2014, the windeploy tool wasn't working perfectly. But it seems like it is way better.