Qt5.12.5 静态编译以及裁剪大小对比

Qt5.12.5 静态编译以及裁剪大小对比,第1张

最近在研究用静态编译的 Qt 做个 Qt 的安装包程序,因为 nsis 在界面自定义还有多语言适配等问题上不太理想。做安装包程序基本上只需要有最基础的 Qt 界面模块即可,不过把除了 UI 的模块全部去掉又比较难用...这里记录下两种极端编译配置下生成的程序大小作为参考。

编译需要的环境可以看官方文档, windows-requirements 中的 Building from Source 有说明需要安装的工具,所有工具都记得要添加到环境变量。

最后的-mp 是多核编译的参数,多核编译用 jom 快得一匹,全模块也只要 20 分钟编译完成。

这个配置把能删的模块都删了,编译出来后基本也就基础UI相关类能用...所以编译起来超快的。

比全模块配置生成的exe减少了 30%的大小,不过 30%也就 3M,在 windows 平台的话倒是没必要追求这种极致了=-=

此时如果是移动了编译后的路径,可能报错 Qt version is not properly installed,please run make install 。在 qmake.exe 所在目录新建一个 qt.conf 文件,并添加下面的内容即可:

方法一:解决跨设备无库文件,exe无法正常运行的问题。

1、Qt程序采用release方式编译发布;拷贝".exe"目录整个文件夹

2、以管理员方式 运行QT命名行 (电脑桌面->开始->搜QT->进编译器) "Qt 5.9.9 (MSVC 2017 64-bit)",

3、 cd /d (+)".exe"跟目录文件路径     例如:cd /d C:\Users\86131\Desktop\release  ,定位至exe文件目录。

3、 windeployqt (+)”.exe“的程序名称     例如:windeployqt rtpPlayer.exe   ,自动将应用所需的库添加至.exe文件中。

拷贝此文件夹全部内容至其他设备,exe文件可直接正常运行。

方法二:打包成一个exe文件。

1、按方法一先添加好全部库文件。

2、运行"Enigma Virtual Box"软件,

①选择exe文件路径;

②设置打包后的exe文件的保存路径;

③将所有文件全选后拖拽至列表"add Folder Recursive"整个文件夹(可直接打开含库文件的release文件夹,全选文件夹内所有文件,拖拽至"Enigma Virtual Box"软件文件列表)

④建议压缩后执行。执行完成后会在相应路径生成打包好的exe文件,如过库文件齐全、压缩步骤正确,即可在不同设备上正常运行打包后的exe程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8094860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存