在我的一个程序中,我使用QWebView
加载和打印由HTML文档制作的报告。因此,在部署时,我会复制这些库,以及所有其他相关的Qt库:
在目的地机器上测试后,我发现打印不起作用。感谢Dependency Walker我得到了所有错过的图书馆。这是清单:
好的,我可以理解它为什么要Qt5Multimedia.dll
。浏览器可以播放声音等但是QML
!为什么我需要所有这些与QML
相关的库?我既不使用OpenGL
也不使用传感器或定位。所以在我的情况下这是不必要的。
所以我的问题 - 有没有办法只部署我需要的库?当然,让程序工作。
答案 0 :(得分:1)
我建议您使用windeployqt.exe
。
来自docs:
可以在QTDIR / bin / windeployqt中找到Windows部署工具。它 旨在自动创建可部署文件夹的过程 它包含所有库,QML导入,插件,翻译等 需要从该文件夹运行该应用程序。这习惯了 为Windows运行时创建沙箱或为其安装树 可以轻松捆绑的Windows桌面应用程序 安装程序。
我就是这样做的:
cd [my program dir]
mkdir RELEASE
cd RELEASE
copy ..\"progname.exe" .
set QTDIR=C:\Qt\Qt5.4.1\5.4\mingw491_32\bin
call %QTDIR%\qtenv2.bat
windeployqt --force "progname.exe"
您可以通过将[my program dir]
更改为您的应用程序的文件夹(包含.exe
文件),QTDIR
到您的Qt MinGW文件夹(这就是我使用的)和{ {1}}带有可执行文件的名称。
它将使用您的可执行文件和所需的Qt库(.dll等)创建一个progname.exe
目录。