Qt之新手打包发布程序
工具:电脑必备、QT下的windeployqt
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。
因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
注:在这里以Qt 5.3.2+MinGW开发环境为例,(其他版本类同)
在开始菜单中找到Qt 5.3 for Desktop (MinGW 4.8 32 bit)
这里可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。
集成开发环境 QtCreator 目前生成图形界面程序 exe 大致可以分为两类:
Qt Widgets Application 和 Qt Quick Application。
下面分别介绍这两类exe 的发布方式。
Qt Widgets Application可执行程序发布方式:
首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。
然后以 Release 方式编译生成 exe 程序:
1、 生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:
E:\QT_Data\Clx\05\Clx_ImageProcessor\
它的项目生成目录是
E:\QT_Data\Clx\05\build-Clx_ImageProcessor-Desktop_Qt_5_3_MinGW_32bit-Release\
进入这个文件夹,在进入它的子文件夹
release 里面,找到 Clx_ImageProcessor.exe ,
将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到
E:\Clx\fb\ 文件夹里面。
然后从开始菜单打开 Qt 命令行,输入命令 :cd /d E:\Clx\fb\
然后使用
windeployqt 工具命令:
windeployqt Clx_ImageProcessor.exe
然后可以在 E: \Clx\fb\ 文件夹里看到 windeployqt 工具自动复制的插件文件夹
和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。
把 E: \Clx\fb\ 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。
E: \Clx\fb\
文件夹里的qm文件是多国语言翻译文件,不需要可以删了,
其他的都保留。
2、Qt Quick Application发布方式
首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
然后以 Release 方式编译生成 exe 程序:
E:\QT_Data\Clx\05\Clx_ImageProcessor\
它的项目生成目录是
E:\QT_Data\Clx\05\build-Clx_ImageProcessor-Desktop_Qt_5_3_MinGW_32bit-Release\
进入这个文件夹,在进入它的子文件夹 release 里面,找到 Clx_ImageProcessor.exe ,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 E:\Clx\fb\ 文件夹里面。
然后从开始菜单打开 Qt
命令行,输入命令 :cd /d E:\Clx\fb\
然后使用
windeployqt 工具命令:
windeployqt Clx_ImageProcessor.exe --qmldir C:\Qt\Qt5.3.2\5.3\mingw482_32\qml
(注:这是一行代码没有换行)
注意不要跟烧包一样照抄上条命令,--qmldir
是指出 Qt 库里面的 qml 文件夹位置,
上面命令里
C:\Qt\Qt5.3.2 是 Qt
官方开发环境安装的文件夹,
C:\Qt\Qt5.3.2 \5.3\mingw482_32 是Qt类库的目录(QTDIR),
因此使用的 --qmldir 后面写的是 C:\Qt\Qt5.3.2\5.3\mingw482_32\qml
读者Qt环境安装路径不一样,要根据实际情况修改!
然后可以看到 E:\Clx\fb\ 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。
将整个 E:\Clx\fb\ 文件夹 打包就可以发布出去,在别的电脑上使用。这个 E:\Clx\fb\ 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。
上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。
Qt之新手打包发布程序的更多相关文章
- Qt Package Project 打包发布程序
在Qt项目开发完成后,我们想将项目打包发布成一个可执行文件,需要做如下步骤: 首先,将项目中的release文件中的可执行文件拷到一个新建的文件夹中,例如project.exe,用Qt自带的生成必备的 ...
- Qt for Mac:发布程序(widgets和quick2)
当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...
- 【golang-GUI开发】Qt项目的打包发布
这是本系列的第三篇文章,前两篇我们讲了qt的安装和编译,今天我们讲一讲程序的打包. 好像我们现在都没怎么讲到qt的使用,因为想要放开手脚写代码,一些基础是要打牢的. 不过请放心,下一篇文章开始我们就会 ...
- Qt ------ linux(ubuntu) 下用 linuxdeployqt 打包发布程序
https://github.com/probonopd/linuxdeployqt/releases 1.下载linuxdeployqt 2.把下载的文件放入 /usr/local/bin 内,并执 ...
- Qt 打包发布程序
利用Qt Creator写好程序,选择对应的编译器编译程序. 编译完成会在项目同级目录生成对应的目录来保存编译后的输出. 打包程序就要选择Qt自带的CMD工具,分别有下面几种. 比如,打包VS2017 ...
- 利用Qt自带工具发布程序
Qt官方开发环境生成的exe发布方式--使用windeployqt 从开始菜单-->Qt 5.4.0-->5.4-->MinGW 4.9 (32-bit)-->Qt 5.4 f ...
- java打包发布程序.jar(Eclipse)
1.程序运行无错误后,右击项目名称,选择Export 2.next后,选择启动时的运行项目,选择压缩包的存储路径 3.finishi即可. 4.运行 cmd存储路径下>java -jar XXX ...
- QT5.4 计算器程序 打包&发布,解决dll的最新解决方案
QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...
- QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)
QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...
随机推荐
- Elasticsearch搜索之most_fields分析
顾名思义,most_field就是匹配词干的字段数越多,分数越高,也可设置权重boost. 下面是简易公式(详细评分算法请参考:http://m.blog.csdn.net/article/detai ...
- Linux 基础(2)
Linux 基础(二) 用户 组 及权限的相关操作 一.useradd命令选项:–u:指定用户的UID useradd –u 100 mu #指定mu的UID为100–g:指定用户所属的群组 user ...
- js判断字符串是否全为空(使用trim函数/正则表达式)
我们需要判断用户输入的是否全是空格,可以使用以下方法: 方法一: 使用trim() /* 使用String.trim()函数,来判断字符串是否全为空*/ function kongge1(test) ...
- 阿里云CentOS-7.2安装mysql
我下载的阿里云的服务器系统centos7.2是纯内核版本,并没有其他的工具,所以这个系统是非常干净的.所以我就需要给系统安装一一些工具,来方便系统的管理与操作,我们上面讲到了关于服务器的yum的配置在 ...
- silverlight WPF 水纹文本框
silverlight3取消了watertextbox控件,只有自己实现了个,实现了和textbox一样的无差异使用,只需要设置defaulttext就可以了 using System; using ...
- Linux下链接数据库图形化工具
(一).Linux环境下mysql的安装.SQL操作 Linux下安装MySQL (rmp --help) 基本步骤:上传软件->检查当前Linux环境是否已经安装,如发现系统自带的,先卸载-& ...
- vue视频学习笔记07
video 7 vue问题:论坛http://bbs.zhinengshe.com------------------------------------------------UI组件别人提供好一堆 ...
- 区别client、offset、scroll系列以及event的几个距离属性
element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个只读属性,它包括了: css width + p ...
- DevCloud让代码检查更科学
代码检查是软件开发工作中不可或缺的一部分,众所周知,规范化的编码是一个优质项目的保证.华为软件开发云(DevCloud)便提供了专业科学的自动化代码检查工作. 一.华为软件开发云(DevCloud)目 ...
- Git版本控制,rsync同步文件,完成线上部署
之前项目开发完成,测试阶段,借着此时,由于公司暂时用两台aliyun ecs 做业务层,所以每次都需要同步线上文件,进而想着搞一搞服务器端(小公司,新项目,先小搞一把),搭建一套小的版本控制上线的 ...