Qt程序打包发布方法(使用官方提供的windeployqt工具)

转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目录下,其中 QTDIR 是 Qt 的安装目录,是环境变量。
在集成开发环境 QtCreator 中可选择 “Qt Widgets Application” 或 “Qt Quick Application” 两种方式生成图形界面应用程序。
下面分别介绍这两种方式创建应用的发布方式。

  1. Qt Widgets Application
    首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。
    然后以 Release 方式编译生成 exe 程序:

生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:C:\QtPros\hellomw\ 。
它的项目生成目录是 C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个文件夹,在进入它的子文件夹 release 里面,找到 hellomw.exe,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\hellomw\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,输入命令:cd /d D:\hellomw
然后使用 windeployqt 工具命令:windeployqt hellomw.exe

然后可以在 D:\hellomw 文件夹里看到 windeployqt 工具自动复制的插件文件夹和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。

把 D:\hellomw 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。D:\hellomw 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。
2. Qt Quick Application

首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
然后以 Release 方式编译生成 exe 程序:

然后找到项目的构建目录,比如项目源码目录 C:\QtPros\helloqml 。
它的构建目录是:C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个目录,再进入 release 子文件夹,找到 helloqml.exe ,复制到一个新的单独的文件夹里面,比如 D:\helloqml\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,进入D:\helloqml\文件夹:cd /d D:\helloqml
然后使用 windeployqt 工具命令:windeployqt helloqml.exe –qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml

注意不要跟完全一样照抄上条命令!–qmldir 是指出 Qt 库里面的 qml 文件夹位置,上面命令里 C:\Qt\Qt5.4.0 是 Qt 官方开发环境安装的文件夹,C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt类库的目录(QTDIR),因此使用的 –qmldir 后面写的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml ,读者Qt环境安装路径不一样,要根据实际情况修改!
然后可以看到 D:\helloqml 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。将整个 D:\helloqml 文件夹 打包就可以发布出去,在别的电脑上使用。

这个 D:\helloqml 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。
上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。

Qt发布程序(windows平台)相关推荐

  1. QT发布程序打开数据库失败

    QT发布程序后,打开数据库失败,提示"QSqlDatabase: QMYSQL driver not loaded",可如下操作: 1.将qt生成的test.exe拷贝到一个空文件 ...

  2. C++|Qt工作笔记-Windows平台下的句柄与Qt中QWindow::winId()以及 QPlatformWindow::handle的区别与联系

    具体是这样的,当创建一个Qt窗口,调用window->winId()与window->handle()后,运行截图如下: 此时可以看到,这个窗口的handle为0x1e78de38 win ...

  3. MiniWebClient,3秒实现一个Web桌面程序(Windows平台)

    Why MiniWebClient? 使前端开发桌面程序更加便捷,减少桌面程序的学习成本 修改一个配置前端即可进行桌面程序的逻辑开发,几乎零成本 提供C++端对前端的功能支持,使前端亦可操作计算机底层 ...

  4. 【Qt】Qt发布程序时,报错: could not find or load the Qt platform plugin xcb

    问题描述 Qt程序在发布时,报错: This application failed to start because it could not find or load the Qt platform ...

  5. QT 发布程序到开发板

    设置 IP 与开发板同一网段 设置一个device 设置开发板平台的 kit , 选择 device 设备为刚刚设置好的 pro 文件加入代码设置远程发布安装路径 INSTALLS += target ...

  6. 使用Nginx配置NodeJs程序(Windows平台)

    简介 Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx 是由 Igor Sysoev ...

  7. qt项目在Linux平台上面发布成可执行程序.run

    ​ 简介: qt项目在Linux平台上面发布成可执行程序.run,或是免安装的绿色版本.亦或者安装形式的安装包. 文章目录 简介: 该博文系列: 开发平台环境: 项目在Linux平台发布: 下载/系列 ...

  8. [转载]Qt platform plugin 'windows'

    Qt platform plugin 'windows' 原文链接:https://blog.csdn.net/darren2015zdc/article/details/73293698 关于Qt ...

  9. Windows 平台Qt 程序发布

    Windows 平台Qt 程序发布 使用 windeployqt 工具查找依赖库 打包程序 Enigma Virtual Box 生成单执行文件 Inno Setup 打包 资源 Qt Creator ...

最新文章

  1. python importlib_metadata_Python 动态导入对象,importlib.import_module()的使用方法
  2. 试题 历届试题 幸运数(二分)
  3. POJ 3696 欧拉函数+快速幂
  4. WampServer安装教程
  5. 拓端tecdat|R语言多变量广义正交GARCH(GO-GARCH)模型对股市高维波动率时间序列拟合预测
  6. linux+qt经典教程+pdf下载,Qt入门教程 详细讲解版.pdf
  7. 大气压计BMP280+BME280+BMP180 在ESP8266 (RTOS3.2)上初调的兼容驱动
  8. UDE2021开展首日回顾,“黑科技”含量超标了!
  9. md5值是什么?md5值有什么用?
  10. Linux基础:su命令使用方法介绍
  11. eclipse如何设置背景颜色
  12. 用Math函数中的random随机数模拟骰子
  13. python爬虫怎么下载图片到手机_python爬虫获取京东手机图片的图文教程
  14. 洛谷P3987 我永远喜欢珂朵莉~(set 树状数组)
  15. unix_timestamp()和 from_unixtime()的用法
  16. [OpenWrt] 使用TLL刷FLASH(固件)的方法
  17. 4、Linux:如何在zip压缩文件中搜索指定内容
  18. lync2010头像设置_LyncAutoAnswer.com简介-Lync 2010的开源远程工作者的自动应答信息亭
  19. [生存志] 第112节 义军起山东
  20. C陷阱和缺陷(C Traps and Pitfalls)-读书笔记

热门文章

  1. flink exactly once和at least once的理解
  2. 打造WIN8 USB(8G低速U盘)移动版系统
  3. 支付宝 ali110错误
  4. python微服务方案
  5. 小迪渗透权限提升(捌)
  6. 上善若水(9.18)
  7. 金仓数据库 KingbaseES 插件参考手册 plsql_plprofiler
  8. 过亿月流水H5游戏优化分享、腾讯自研H5游戏优化分享、Layabox官方优化分享,全在这里了!...
  9. java编五子棋人工智能原理_人工智能五子棋实现原理
  10. 自定义View---widthMeasureSpec和heightMeasureSpec是从哪来?