说来可笑,网上那么多的教程,偏偏结尾的时候就没有一个能详细的讲下关于程序的发布。开发Qt是这样,刚开始做web也是这样,因为是自学的,所以都没人可以教下,结果到了项目完成的最后总是要花费成吨的时间去查资料,了解怎么发布打包这些,好了,废话不多说,进入正题吧。

因为从没开发过桌面程序,这是第一次开发,然后在对程序打包时就出现了一堆的问题。

1.我用的是vs2012+qt5.1.0开发,编译时就是用release编译了。因为我的电脑系统是64位的,所以当初安装qt时就只下了个64位的qt。等到最后才知道,程序是32位还是64位,看的是你编译环境 64位还是32位的。所以要打包32位程序的话一定要安装32位的编译环境。

2.当我们release成功后在release文件夹可以找到我们的.exe可执行文件。这时我们在本机上打开是可以运行成功的,那是因为我们的系统环境变量已经设置到关联编译环境的路径了,这程序就会去那个路径下读取相关的dll文件,而当我们把程序拷到其他电脑上时,它是找不到相关的dll文件的,所以程序是打不开的。这里我们可以去网上找一些测程序需要什么dll文件的程序,用它们来测试我们需要什么dll文件,然后在我们的机器上找到相关的dll文件把它拷贝到存放.exe可执行文件的文件夹下。

这里我要提醒下,因为我之前把所有的dll文件拷好了,拿到其他机器上运行时,它也不报程序错误,也运行不成功。最后我通过改本机的系统环境变量,才发现了问题的所在。

我们安装的Qt程序中会有两个文件夹,以我的电脑为例:

D:\Qt\Qt5.1.0x86\5.1.0\msvc2012\bin

D:\Qt\Qt5.1.0x86\Tools\QtCreator\bin

这两个文件夹下都有相同的dll文件,我开始时是拷贝了第一个文件夹的dll文件,结果就是前面提到的程序不报错误,但也运行不成功。所以如果大家打包后程序跑不起来,可以去看看是不是编译平台下有相同dll文件的不同文件夹,有的话如果一个不行就试试另一个

3.因为我们的环境是vs2012所以qt程序里面有用到了一些vs的标准库,所以我们也需要去c盘里找到那几个相关的dll文件,我的程序里面需要用到的有以下几个dll:

msvcp100.dll、msvcp110.dll、msvcr100.dll、msvcr110.dll这几个文件,在我们的本机中可能会找到很多个,但并不是任何一个都可以用,这就需要慢慢去试了,不过我之前一直找不到正确的msvcp100.dll,最后是在测试机上下了个dll修复工具(不知道的百度还是腾讯的了,忘了),然后用它修复了那个dll,然后再去把这个dll文件拷贝到,最后才行的。

当我们把所有的dll文件放到可执行文件的文件夹下后,程序就可以跑起来了,这时这个程序就是一个绿色版的了,然后详细要去打包成安装包,我这里就没去弄了,所以也不好多说。

然后dll文件不是所有都放在可执行文件夹下的,比如我们用到了qt plugins 文件夹的的sqldirver文件夹里的dll,这时我们只要把整个sqldirver文件夹拷贝进去就行了。

最后Qt程序主要的那些dll文件其实都是一样的,所以我在展示下我打包的程序里面的dll结构吧。这里面的platforms是一定要有的,没有的话好像会跑不起来。

初学Qt——程序打包(环境vs2012+qt5.1.0)的更多相关文章

  1. ubuntu 环境下的QT程序打包

    很多的时候 需要将自己写的QT 程序发布一下  所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库. 1. QtCreate使用Release版 ...

  2. 【win】【qt5打包】【qt程序打包成一个可执行文件(带图标任何win都可以运行哦)】

    [前言] 业务需求将qt程序打包成win可执行文件.咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗. [目标] 1.给qt程序添加一个图标. ...

  3. QT程序打包发布

    本来感觉这是一个简单的操作,今天看见群里有人在问这个问题,他说网上查了很多都不成功,突然就想把自己初学的时候记录一下! 题目谢了QT程序的打包发布,那就是两步骤:打包+发布! 注释:这篇博文用的是Qt ...

  4. Qt 程序打包发布总结

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

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

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

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

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

  7. Qt程序打包,自动拷贝依赖文件

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt程序打包,自动拷贝依赖文件     本文地址:http://techieliang.com ...

  8. VS2012 QT程序打包部署详解

    1.设置安装程序集 InstallShield安装完成后,执行以下步骤右键解决方案-->添加-->新建项目-->其他项目类型-->安装和部署,具体操作如下图: 2.发布程序 在 ...

  9. Qt 程序打包发布

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,Qt 官方开发环境里自带了一个工具:windeployqt.exe.在Qt安装目录如:C:\Qt\Qt5.7. ...

随机推荐

  1. 容斥原理的(二进制思想和质因子分解+模板)hdu4135+ecf81.D

    题:http://acm.hdu.edu.cn/showproblem.php?pid=4135 题意:求[A,B]与N互质的数的个数 #include<iostream> #includ ...

  2. [原]C++新标准之std::chrono::time_point

    原 总结 STL 标准库 chrono time_point ratio  概览 类定义 总结 思考 拓展 system_clock steady_clock high_resolution_cloc ...

  3. JavaScript 的 URL 对象是什么?

    如果我们自己编写从URL中分析和提取元素的代码,那么有可能会比较痛苦和麻烦.程序员作为这个社会中最“懒”的群体之一,无休止的重复造轮子必然是令人难以容忍的,所以大多数浏览器的标准库中都已经内置了URL ...

  4. DocCms_2016 代码审计

    0x00 结构浏览 按照代码审计的惯例,拿到这款cms之后首先浏览了一下目录结构,在基本了解之后,首先进入/index.php,这里包含了两个文件:/admini/config/qd-config.p ...

  5. visual studio code快捷键(mac)

    常用快捷键 命令 命令描述 备注  ctl+j  多行文字变成一行 打开首选项->键盘快捷方式->搜索 joinLines: 然后设置你的快捷键再回车即可.

  6. We don't wanna work!

    We don't wanna work! [JAG Asia 2016] 两个set,一个代表工作的,一个代表不工作的 其实是一个很简单的模拟,但是我竟然排序之前标号.... 检查代码的时候要从头开始 ...

  7. pycharm2018后版本执行Flask app.run()深坑

    在2018年以前的版本,以上配置在app.run()里面的内置方法

  8. Linux基础快捷键

  9. win10安装MAYA失败,怎么强力卸载删除注册表并重新安装

    一些搞设计的朋友在win10系统下安装MAYA失败或提示已安装,也有时候想重新安装MAYA的时候会出现本电脑windows系统已安装MAYA,你要是不留意直接安装MAYA,只会安装MAYA的附件或者直 ...

  10. 数据结构中的顺序表和链表(Python语言)

    转载:https://blog.csdn.net/weixin_43187669/article/details/96426362 算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体. ...