Building on windows 8, deploying on windows 7
-
My current development machine is a Windows 8 Pro (64bit), with VS2010 installed. I installed "Qt 5.1.0 for Windows 32-bit (VS 2010)" using the binary installer provided on the download page. Development is working fine, however I am having trouble testing my builds on a Windows 7 Ultimate (64bit) machine.
The app is a QtQuick 2 application. It builds fine (debug and release) using QtCreator 2.7.2, and using Visual Studio 2010, and runs fine on the devmachine. However it fails to run on the test machine mentioned above. Double-clicking the app gives the busy cursor, then nothing, never really starting, probably indicating missing dependencies. Trying to run the app from explorer on the dev machine from within the release folder, requires the following files to be in the same folder as the exe:
bq.
icudt51.dll, icuin51.dll, icuuc51.dll, IEShims.dll, libEGL.dll, libGLESv2.dll, Qt5Core.dll, Qt5Gui.dll, Qt5Network.dll, Qt5Qml.dll, Qt5Quick.dll, Qt5V8.dllOn the test machine I also add the following to the exe folder:
bq.
D3DCompiler_43.dll, dcomp.dll, msvcp100.dll, msvcr100.dllSo on the test machine, I have all the above in the exe folder, however the application still doesn't run.
Running Dependency walker, on the test machine gives the following errors:
bq.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.However, both errors also show up if I run Dependency Walker on the exe on the dev machine, where the app runs fine.
Finally when running the app from within VS2010, which lists all the dependencies as they are loaded in the output window, i get the following:
bq.
SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qminimal.dll', Binary was not built with debug information.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qminimal.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qminimald.dll', Symbols loaded.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qminimald.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qoffscreen.dll', Binary was not built with debug information.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qoffscreen.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qoffscreend.dll', Symbols loaded.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qoffscreend.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qwindows.dll', Binary was not built with debug information.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qwindows.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qwindowsd.dll', Symbols loaded.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qwindowsd.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms\qwindows.dll', Binary was not built with debug information.
...
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\iconengines\qsvgicon.dll', Binary was not built with debug information.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\iconengines\qsvgicon.dll'
'SailM.exe': Loaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\iconengines\qsvgicond.dll', Symbols loaded.
'SailM.exe': Unloaded 'C:\Developer\Packages\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\iconengines\qsvgicond.dll'And lots more plugins, which I couldn't paste here due to the character limitation for the post. Anyway, as above, lots of the plugins are loaded then immediately unloaded, while other plugins are loaded and never unloaded. Do I need to also include everyone of those plugins in the deployment folder? Seems like a huge hassle.
Generally, is it possible to build on a Windows 8 machine, and deploy on older systems, Windows 7, Vista etc, with VS2010 Qt build i downloaded, or does Qt need to be built or configured deifferently?
-
Hi,
Have a look at the "deployment documentation":https://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html you'll find what you need to provide in order to run your application on another computer.