工具:电脑必备、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之新手打包发布程序的更多相关文章

  1. Qt Package Project 打包发布程序

    在Qt项目开发完成后,我们想将项目打包发布成一个可执行文件,需要做如下步骤: 首先,将项目中的release文件中的可执行文件拷到一个新建的文件夹中,例如project.exe,用Qt自带的生成必备的 ...

  2. Qt for Mac:发布程序(widgets和quick2)

    当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...

  3. 【golang-GUI开发】Qt项目的打包发布

    这是本系列的第三篇文章,前两篇我们讲了qt的安装和编译,今天我们讲一讲程序的打包. 好像我们现在都没怎么讲到qt的使用,因为想要放开手脚写代码,一些基础是要打牢的. 不过请放心,下一篇文章开始我们就会 ...

  4. Qt ------ linux(ubuntu) 下用 linuxdeployqt 打包发布程序

    https://github.com/probonopd/linuxdeployqt/releases 1.下载linuxdeployqt 2.把下载的文件放入 /usr/local/bin 内,并执 ...

  5. Qt 打包发布程序

    利用Qt Creator写好程序,选择对应的编译器编译程序. 编译完成会在项目同级目录生成对应的目录来保存编译后的输出. 打包程序就要选择Qt自带的CMD工具,分别有下面几种. 比如,打包VS2017 ...

  6. 利用Qt自带工具发布程序

    Qt官方开发环境生成的exe发布方式--使用windeployqt 从开始菜单-->Qt 5.4.0-->5.4-->MinGW 4.9 (32-bit)-->Qt 5.4 f ...

  7. java打包发布程序.jar(Eclipse)

    1.程序运行无错误后,右击项目名称,选择Export 2.next后,选择启动时的运行项目,选择压缩包的存储路径 3.finishi即可. 4.运行 cmd存储路径下>java -jar XXX ...

  8. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  9. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

随机推荐

  1. 从零到实现Shiro中Authorization和Authentication的缓存

    本文大纲 一.简介 二.缓存的概念 三.自定义实现缓存机制 四.什么是Ehcache 五.Ehcache怎么用 六.Spring对缓存的支持 七.Spring+Ehcache实现 八.Spring+S ...

  2. 几个地图(高德、百度、Apple、Google)URL API

    移动应用中,如何在自己的App中调起第三方的原生地图App,并显示相关的信息,如显示指定的一个坐标位置,显示一个起点到终点的路线查询,等等. 目前几个主要的地图商都提供了自己的App通过URL调用的形 ...

  3. 【转载】rem自适应布局-移动端自适应必备

    原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...

  4. iOS 2017年, 上传审核被拒绝.到奔溃

    2017年,苹果并没有因为新年的气氛而对CP们"网开一面".频繁锁榜.调整排名规则以及关键词覆盖算法--不断抛出的大动作,让CP们叫苦不迭.且从1月初开始,苹果还进一步加强了对应用 ...

  5. 简单的留言板(dom+正则练习)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. Java中Json解析

    首先准备一个JSON格式的字符串 * String JsonStr = "{object:{persons:" + "[{name:'呵呵',image:'http:// ...

  7. python——杂货铺

    三目运算: >>> 1 if 5>3 else 0 1 >>> 1 if 5<3 else 0 0 深浅拷贝: 一.数字和字符串 对于 数字 和 字符串 ...

  8. select效果联动

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  9. js小数处理

    js中的小数处理   先说说Math的几个方法: 1.Math.floor(x)   返回不大于当前数的最大整数. 我的记法:floor 直译 地板  也就是不大于的的意思 (x-0.5 四舍五入取整 ...

  10. 通过 jdbc 分析数据库中的表结构和主键外键

    文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...