您的位置:首页 > 编程语言 > Qt开发

QT应用在Windows下部署发布

2017-04-29 22:55 309 查看
刚接触QT,对于其在Windows下部署一头雾水。网上相应的资料很多都是手工程度比较高的,在这里我们可以使用QT自带的发布工具 -
windeployqt.exe


部署发布 - 解决依赖

该文件在QT的安装目录下,我Windows平台使用的mingw版本(5.8),其路径为

D:\Qt\Qt5.8.0\5.8\mingw53_32\bin\windeployqt.exe


使用Release模式编译程序,然后将对应的
exe
文件和你自己编写的
dll
文件复制到一个单独的目录中(假设目录为
HelloQT
,文件为
helloqt.exe
)

然后在cmd下进入该目录,执行以下命令即可

D:\Qt\Qt5.8.0\5.8\mingw53_32\bin\windeployqt.exe helloqt.exe


该命令会在
helloqt.exe
目录目录下生成(应该是复制)其所需要的依赖项。

如果你是基于msvc编译的qt应用,那么此时已经可以运行起来了。

但是基于mingw编译的qt应用,此时还有3个依赖项没有自动复制过来,依次是

-
libgcc_s_dw2-1.dll


-
libstdc++-6.dll


-
libwinpthread-1.dll


这些文件你都可以在目录
D:\Qt\Qt5.8.0\Tools\mingw530_32\i686-w64-mingw32\lib
下找到。


部署发布 - 打包压缩

经过上面的步骤,虽然依赖解决了,但是有两个问题

依赖项目非常多

文件总体积很大(一个helloworld应用大概会有40+M)

我们可以采取以下措施来解决或者优化上面出现的问题

删除掉不用的DLL文件(我目前对这些不太熟…)

用strip命令去掉程序里面一些无用信息

使用打包/加壳工具进行打包压缩

Enigma Virtual Box

ASPack

UPX

Flexera (InstallShield安装包制作工具)

其它优化手段…

待实践

参考

如何在Windows下发布QT应用程序

Qt5应用程序的部署

Qt 5.x 应用程序 Windows 部署方法

QT程序在windows下部署发布

Application failed to start because it could not find or load the QT platform plugin “windows”

Qt for Windows - Deployment

Deploy an Application on Windows
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt windows 应用 发布 mingw