Qt项目的发布

(1)首先将项目调为发布版

(2)找到缺失的DLL文件

发布好了后,双击生成的exe文件可能会出现如下的问题

像这样的错误警告可能会弹出好几个,对于这种错误有2种解决方案。

  • 第一种:配置环境变量

1、复制Qt bin目录添加到环境变量

  • 第二种:将缺失的DLL复制到生成的exe同一个文件夹下

去Qt的bin目录下找到缺少的DLL

我所写的一个小程序缺少了3个DLL文件,将他们复制到同一个文件夹下,如下

最后我们再双击exe文件发现还是报错了

错误的原因可以自己上网搜,这里给出解决方案

去Qt的bin目录下找到libstdc++-6.dll文件,并复制到同一个文件夹

现在双击exe文件,程序就能成功运行了。

(3)在不同的电脑上运行

上面说的方法可以解决发布的exe在本机运行出错的问题,但是并不能保证能在其他电脑上能正常运行,如下这是我在虚拟机里测试的情况

出现这种错误,可以向上面所说的方法,找到缺失的DLL

但是找到所有缺失的DLL后还是会发生错误,如下

在网上查找资料得知,将plugins/platforms目录下的DLL复制到同一目录,若所写的程序还包括image组件还需要把plugins/imageformats下的DLL复制过去,这样程序就能无误的运行了。

虽然这能解决问题,但是我们复制过去这么多的依赖,并不一定全部需要,为了精确的得知程序所需要的依赖,可以借助一个软件Process Explorer下载链接,通过它可以精确的得知所需要的DLL

首先打开软件,并调出DLL面板

然后找到自己编写的Qt程序,就能看到相关依赖的DLL文件了

按照路劲找到他们,复制到同一个文件夹,程序就能正常运行了,唯一要注意的是plugins目录下的DLL文件需要带上他所在的文件夹

这样程序就能在不同的电脑自由运行了。

Qt项目的发布的更多相关文章

  1. Hello World程序演示Qt项目的建立、编译、运行和发布

    一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...

  2. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  3. Qt 静态编译发布和动态编译发布

    静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...

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

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

  5. Qt之程序发布以及打包成exe安装包

    一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...

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

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

  7. Qt 程序打包发布总结 转

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  8. 配置CLion管理Qt项目国际化支持

    随着Qt 6的发布,cmake也正式宣告接管qmake的工作了. 在之前的一篇博客里我介绍了如何使用cmake管理你的qt项目,不过有一点我没有讲,那就是对国际化(i18n)的处理. 今天我们就来介绍 ...

  9. eclipse项目自动发布到tomcat目录,缺文件。

    eclipse项目自动发布到tomcat目录,缺文件. 解决方案: 项目--Properties-->Deployment Assembly-->Add--> Folder Add- ...

随机推荐

  1. TensorFlow中数据读取—如何载入样本

    考虑到要是自己去做一个项目,那么第一步是如何把数据导入到代码中,何种形式呢?是否需要做预处理?官网中给的实例mnist,数据导入都是写好的模块,那么自己的数据呢? 一.从文件中读取数据(CSV文件.二 ...

  2. Mac M1原生(ARM64)Golang dev&debug

    前言 通过本文最终实现了在M1芯片的Mac mini上的Goland的开发,并通过编译源码解决了无法DEBUG的问题. Go 1.16版将正式支持Apple Silicon M1芯片,即arm64架构 ...

  3. 【C++】《Effective C++》第一章

    第一章 让自己习惯C++ C++是一个威力强大的语言,带着众多特性,但是在你可以驾驭其威力并有效运用其特性之前,你必须先习惯C++的办事方式. 条款01:视C++为一个语言联邦 如今的C++已经是个多 ...

  4. 基于Python实现的系统SLA可用性统计

    基于Python实现的系统SLA可用性统计 1. 介绍 SLA是Service Level Agreement的英文缩写,也叫服务质量协议.根据SRE Google运维解密一书中的定义: SLA是服务 ...

  5. ruby+watir安装指南

    安装ruby+watir一共需要下面几个步骤 1. 安装ruby: 2. 升级Rubygems:Rubygems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统. 它提供一个 ...

  6. Mongodb 安装和副本集集群搭建

    通用步骤,适用于所有你需要用的软件. 总结为5大步骤: 找到官网-->下载包-->解压-->修改配置-->启动 不懂的,首选官网api,次选百度 1.安装mongodb mon ...

  7. ctfshow—web—web5

    打开靶机,代码审计 附上代码 <?php error_reporting(0); ?> <html lang="zh-CN"> <head> & ...

  8. 国人之光:大数据分析神器Apache Kylin

    一.简介 Apache Kylin是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献 ...

  9. mysql:如何解决数据修改冲突(事务+行级锁的实际运用)

    摘要:最近做一个接诊需求遇到一个问题,假设一个订单咨询超过3次就不能再接诊,但如果两个医生同时对该订单进行咨询,查数据库的时候查到的接诊次数都是2次,那两个医生都能接诊,所谓接诊可以理解为更新了接诊次 ...

  10. 使用smartform打印表单

    昨天写了个smartform打印表单,在开发完成,在测试机测试OK,传到生产机,出现严重问题!无法打印,干脆就是无法调用打印图形界面,进入SMARTFORM事物,查看这个表单,发现,居然公司的LOGO ...