打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Windows下Qt程序打包成
userphoto

2018.06.02

关注

打包目的:

QT写的程序可执行文件需要拷贝到其他没有QT环境的windows设备上执行。


第一步:构建

工具:QT+qmake+MinGW

我的QT程序是qmake写的,在项目—>编辑构建配置选择Release模式,然后构建运行,确认程序没有错误。


第二步:依赖

工具:windeployqt

在Release构建目录中,找出编译好的可执行文件,发现并不能运行,缺少依赖的库文件。

1、新建空文件夹

  • 将可执行文件拷贝到空文件夹中。

2、解决依赖的工具

  • 网上介绍比较多的就是Dependency Walker工具,我没有用这个工具,不细说
             

          对于这个工具很多博客都说到了,典型的黄色问号代表缺少的依赖,需要我们自己去找到,然后拷贝都与可执行文件同级目录下,麻烦程度可想而知。


  • 使用QT自带的windeployqt工具,它在qt的bin目录下,所以需要把qt的bin目录加入到环境变量中,这样可以在命令行执行windeployqt命令。
            打开可执行文件所在的目录,命令行执行windeployqt xxxx.exe,改工具会自动分析依赖,并全部拷贝到当前文件夹下,省事很多。

           

3、双击可执行文件,现在应该可以运行了吧,不幸的是

            

  • 其中一个原因是:动态链接库的版本问题,现在需要手动去QT运行环境的bin目录下将那些无法定位程序输入点的动态库拷贝过来,再次双击.exe,程序能正常运行了。

         但是,依赖问题并没有全部解决。

4、在开发机能运行并不代表在其他裸机上能跑

  • 把此刻我们配置的项目文件夹拷贝到其他裸机(无QT等环境)上,双击.exe,会发现缺少某些.dll,缺什么补什么,去拷贝就行了,直到能运行。
  • 现在才算解决了所有依赖问题(反正这个过程我用了两天)。


第三步:打包

到这一步之后,打包应该没什么问题了,不管什么工具基本上是傻瓜式步骤,都做的很好。

  • 我调研的打包工具有:Enigma Virtual Box、FilePacker、MoleBox Pro等,最终根据需求选择了FilePacker。
  • FilePacker能把可执行文件和依赖的动态库等打包成一个可执行文件。

         

         

  • 随便创建工程名,下一步

            

  • 源目录选择第二步中添加依赖的文件目录

          

          

  • 选择可执行文件

           

  • 选择进程结束后删除解压文件,压缩等级调到最高。

           

  • 临时解压路径选择你想要文件解压的地方,图标是有要求的,自己下个编辑软件做一个。

            

  • 然后下一步,就可以了,最后生成可执行的.exe,可以弄到其他设备上试一试。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt程序打包发布的方法
QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)
Windows如何打包Qt程序
 Qt打包发布程序,打包安装程序和打包为单个exe可执行程序,图文教程
Qt 5——Qt程序打包(图文)
50个小于100k的实用小工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服