Qt + VS/MW程序发布

        今天在发布程序的时候出了一点小问题,由于安装了几个不同版本的Qt,在发布32位的桌面程序时,使用了64位的Qt支持库,因此总结一下发布程序的流程中的一些知识点:

        1.debug与release的区别(待补充)

        2.Qt程序的发布流程

        3.程序打包(待补充)

Qt程序的发布流程

i.发布方式

 -静态发布:将依赖的库、资源等引入可执行程序,会生成一个比较大的可执行程序

流程参考:

 -动态发布:依赖的库以动态链接库(.dll)形式出现在可执行程序的安装目录下,资源以各自的文件形式出现(主要指图片,包含可执行程序的icon、任务栏图标等),同时可以避免使用非商业版本的Qt发布程序时的授权问题(在官网下载Qt环境时会看到官方的授权条件)。

        在之前打包Qt开发的程序时,习惯使用手动拷贝Qt依赖库(包括不同平台上的插件,例如windows上的qwindows.dll),VS开发的程序的运行环境msvcpxxx.dll,msvcrxxx.dll等,还有.manifest文件(标明依赖组件,VS2010之后应该是不再生成了)到可执行程序的安装目录下,这样做的问题是过程繁琐,容易遗漏。

        Qt提供了一个工具 windeployqt.exe,可以帮助我们查找依赖的库并自动拷贝到可执行程序所在的目录。

ii.发布流程

1)Qt Widgets Application 可执行程序发布

首先,编译release版可执行程序,并将可执行程序移动至一个新建的空目录下。(注意:如果存在多个不同版本的Qt,需要注意所使用的编译器(MW、MSVC)以及32位/64位(不共享同一套依赖库)), 对应不同的Qt版本可以添加不同的变量,在执行命令前选择对应的版本的环境变量添加至path,如果选择错了版本会出现如下错误:


然后,运行命令行进入该目录,执行:windeployqt  xxxxx.exe


执行命令结果图

最后检查目录中已经有了所有依赖的Qt库


结果目录

再添加需要的VS运行库以及资源等。

2)Qt Quick Application发布(目前没有使用QML,待补充)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 「博客搬家」 原地址: CSDN 原发表时间: 2016-06-04 本文讨论在 Windows 平台下编译成...
    雪中亮阅读 7,627评论 0 10
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,890评论 0 27
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,041评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,808评论 25 709
  • 蚊子感觉有点头晕,主要原因是饥饿,次要原因是看那星星点点的手机灯光。蚊子决定先趴在阳台上休息一下,缓缓神。就在这个...
    冰上之路阅读 418评论 4 5