windeployqt question
-
windeployqt always places these four dlls in the output directory:
19/10/2022 14:45 4,916,712 d3dcompiler_47.dll
04/06/2020 07:50 20,633,208 opengl32sw.dll
22/09/2022 08:58 1,407,888 Qt6Network.dll
23/09/2022 03:17 358,800 Qt6Svg.dllI use neither OpenGL nor Direct3D, nor SVG, so can I omit those three dlls from the installer?
I do use QNetworkRequest and QNetworkReply, so believe that I need Qt6Network.dll. Is that correct?
A similar question about vc-redist.x64.exe: Do I need ship that as part of the installer. If so what makes the decision to run it? Or should I just include:
28/07/2022 13:57 5,814,528 mfc140u.dll
28/07/2022 13:57 675,984 msvcp140.dll
28/07/2022 13:57 153,840 vcomp140.dll
28/07/2022 13:57 89,248 vcruntime140.dll
05/10/2022 22:36 49,488 vcruntime140_1.dllThanks
David -
windeployqt always places these four dlls in the output directory:
19/10/2022 14:45 4,916,712 d3dcompiler_47.dll
04/06/2020 07:50 20,633,208 opengl32sw.dll
22/09/2022 08:58 1,407,888 Qt6Network.dll
23/09/2022 03:17 358,800 Qt6Svg.dllI use neither OpenGL nor Direct3D, nor SVG, so can I omit those three dlls from the installer?
I do use QNetworkRequest and QNetworkReply, so believe that I need Qt6Network.dll. Is that correct?
A similar question about vc-redist.x64.exe: Do I need ship that as part of the installer. If so what makes the decision to run it? Or should I just include:
28/07/2022 13:57 5,814,528 mfc140u.dll
28/07/2022 13:57 675,984 msvcp140.dll
28/07/2022 13:57 153,840 vcomp140.dll
28/07/2022 13:57 89,248 vcruntime140.dll
05/10/2022 22:36 49,488 vcruntime140_1.dllThanks
David@Perdrix According to the Qt doc you should use Dependency Walker to check which DLLs your app uses and copy those.
Regarding opengl sw rasterizer: I omitted this on some deployments but found later that especially older Intel integrated GPU drivers were not entirely useful for Qt and it somehow fell back to using the SW rasterizer. Therefore I just opted to deliver it by default.
There is also somewhere an explanation about dynamic loading of OpenGL somewhere in the doc but I couldnt find it anymore. Also note as this lib is loaded dynamically you will not see a dependency in Dependency Walker normally.I do not deploy the D3D dynamic compiler and never had problems with a plain Qt Widgets app. There is also a param to skip deployment with windeployqt.
-
I am also using Dependencies as a replacement for Dependency Walker as I had problems running it on windows 11.
-
windeployqt always places these four dlls in the output directory:
19/10/2022 14:45 4,916,712 d3dcompiler_47.dll
04/06/2020 07:50 20,633,208 opengl32sw.dll
22/09/2022 08:58 1,407,888 Qt6Network.dll
23/09/2022 03:17 358,800 Qt6Svg.dllI use neither OpenGL nor Direct3D, nor SVG, so can I omit those three dlls from the installer?
I do use QNetworkRequest and QNetworkReply, so believe that I need Qt6Network.dll. Is that correct?
A similar question about vc-redist.x64.exe: Do I need ship that as part of the installer. If so what makes the decision to run it? Or should I just include:
28/07/2022 13:57 5,814,528 mfc140u.dll
28/07/2022 13:57 675,984 msvcp140.dll
28/07/2022 13:57 153,840 vcomp140.dll
28/07/2022 13:57 89,248 vcruntime140.dll
05/10/2022 22:36 49,488 vcruntime140_1.dllThanks
DavidA similar question about vc-redist.x64.exe: Do I need ship that as part of the installer.
If you compiled your application with msvc then yes, you need to ship it and execute it during installation
If you only ship the vc dlls you will have cases where those are not enough
-
Have a look at https://learn.microsoft.com/en-us/cpp/windows/deployment-in-visual-cpp?view=msvc-170
You can do a central deployment via vc-redistx64 or local deployment where you copy the dlls alongside your executable.