(Windows平台)Qt编译的程序如何在其他没有安装Qt的电脑上运行呢,本文将告诉你答案

文章目录

  • 编译工程
  • 运行windeployqt
  • 添加必要的库
  • 遇到的一个问题

编译工程

这里拿官方的一个例程作为目标工程,选择 Release 的方式编译工程,

编译完成后,程序自动运行(如下图),找到可执行文件的位置(可在项目构建目录中查找),

将可执行文件单独复制出来,放在一个空文件夹中,

此时该文件是无法运行的,如果这是一个C或C++程序,是可以直接运行的,除非你没有把Qt关键的库加到环境变量(如果要在其他没装Qt的机器上运行C/C++程序,则需要把那几个库一起打包,后面介绍)

运行windeployqt

windeployqt 是Qt自带的一个命令工具,位于Qt的编译器的bin目录下,比如我路径为:Qt5.9.0\5.9\mingw53_32\bin

这是一个命令工具,不能直接运行,需要先打开控制台(输入Win+R,接着输入cmd后回车),复制可执行文件所在路径名,在控制台输入cd /d + 可执行文件路径名(右键可粘贴),进入打包目录,

接着将 windeployqt.exe 的绝对路径复制到控制台,后面加上要打包的可执行文件,

回车运行,该工具会把可执行文件所有的依赖库(除了几个Qt核心库)都拷贝到可执行文件所在目录下,

此时打包文件夹出现了很多库文件和若干文件夹(里面也是库),


此时再次运行打包文件下的可执行文件,如果出现以下错误,极有可能是Qt核心库没有被添加到环境变量(当然,把所需要的库直接拷贝到打包文件夹下也是可行的,且这是打包的最后一步,详见下文),

添加完环境变量后,Qt程序已经可以成功运行:

添加必要的库

上面的可执行文件之所以可以直接运行,归功于 windeployqt.ext 生成的依赖库和全局变量中的部分库,但是打包文件夹中只有 wineployqt.exe 生成的库,所以要想让可执行文件能在其他没有安装Qt的电脑运行,我们还需要拷贝几个基本的库。

这些库在 Qt5.9.0\Tools\mingw530_32\bin 目录下(这里只是我电脑上的目录,仅供参考),一般情况下只需要拷贝下面3个库(保险起见,也可以把该目录下所有.dll文件都拷贝走)。

此时,即使去掉环境变量里的Qt相关库,打包好的文件依然可以运行(在其他电脑亦可运行,前提是系统相同)。

遇到的一个问题

之前我按照上面的方法打包一个在Qt上编译的可执行文件,但是出现 xxx.exe does not seem to be a Qt executable. 的报错,说这不是一个Qt可执行文件,我到网上找了很久都没找到解决办法,最后发现 windeployqt.exe 不能用在 C/C++ 的可执行文件上,或者说 C/C++ 可执行文件只需要上面3个基本库就能在其他机器上运行,根本用不到其他的Qt库。

Qt5.9程序打包发布相关推荐

  1. VS2015+QT5.8 程序打包发布详解(包含图片打包,附工具和源码)

    之前按照百度的发布教程,在自己的电脑打得开,在别人电脑打不开,弄了一会,总结的经验如下: 1.打包程序 第一步:在vs2015中,以release方式调试程序,然后会在项目文件夹的x64\releas ...

  2. QT5的程序打包发布(Windows)

    一.平台及工具 1.平台 win10 Pro + QT5.7 2.QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接Engima ...

  3. qt5应用程序打包发布和qt5的mysql驱动编译

    1.mysql的开发支持库libmysql.dll,我是从安装的mysql中的bin目录下拷贝出来的, 需要将此文件拷贝到Qt\Qt5.10.0\5.10.0\mingw53_32\bin目录下, 要 ...

  4. QT5开发的程序打包发布

    一.开发平台 QT5开发的程序打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 自己用的QT版本是 我的电脑系统是WIn10专业版的. 二.介绍一下打包 ...

  5. QT的程序打包发布(将QT5的工程项目打包成一个可直接运行的exe程序)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:https://blog.csdn.net/lxj434368832/article/details/80814388 Qt 官 ...

  6. qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...

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

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  8. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

  9. Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

最新文章

  1. 数据统计之用户总量统计
  2. Linux CentOS各大网站镜像资源地址展示,各种rpm资源包下载地址,rpm安装包大全
  3. 农贸自由化对话国际农民丰收节贸易会:东北粮食贸易对策
  4. 哥大计算机工程申请入口和登陆入口
  5. Transformer性能被高估?DeepMind动态评估模型的时间泛化能力
  6. C# 9 新特性 —— 增强的 foreach
  7. 向量表示 运动抛物线_初学讲义之高中物理(四)常见运动类型
  8. Windows 7 IIS HTTP 错误 403.14 - Forbidden
  9. GreenDao 配置和使用
  10. JQuery 实现表格数据行上移与下移效果
  11. 用nunit时,老是搞忘英文,在这里记录一下,方便到处查阅
  12. 1000以内完数c语言程序_C语言完数编程题目详解
  13. 排序算法2:直接选择排序
  14. 卷积码编码和译码c语言,卷积码编码和译码.doc
  15. 【职场加油站】给职场新人的几条忠告
  16. 把数字翻译成字符串(递归,动态规划)
  17. juicy-potato Windows提权之访问令牌操纵
  18. 代谢组数据分析在生物医学领域的应用
  19. linux获取偶数行内容,linux命令(39):shell 打印偶数行,奇数行 ,行号
  20. python库:Pandas学习笔记

热门文章

  1. WDK_基于Fabric的区块链系统开发
  2. 京东内网遭开源的“顶级”SpringCloud实战手册,GitHub列为首推
  3. calc()函数 css中用100%的宽度/高度,减去50px??
  4. matlab DSP6678,TI CC6678数字信号处理器 (DSP) 的50种用法
  5. java生成word(报告报表)含统计图表图片、循环表格,Spring Boot整合word生成
  6. psvm怎么补全_vi/vim使用进阶: 自动补全
  7. 【RDMA】RDMA网卡通讯
  8. Linux 二进制文件调试命令
  9. mfc函数---CFileDialog的用法
  10. 一个普通计算机培训学校学生的迷茫。