说来可笑,网上那么多的教程,偏偏结尾的时候就没有一个能详细的讲下关于程序的发布。开发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. python学习——函数返回值及递归

    返回值 return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天小编就依目前所了解的讲解一下.pytho ...

  2. 3)利用Build.php自动创建目录和文件

    (1)首先做法参照: thinkphp5的手册的  命令行--->自动生成目录结构 或者看云的资料:https://www.kancloud.cn/manual/thinkphp5/118021 ...

  3. day13-面向对象

    #解决同一类问题,使用面向对象的思想.类是制造对象的模具,类是抽象的,我们能知道它有哪些属性(name,age,saraly),但不知道具体的属性值. #看下面代码:类Penson制造了实例化对象re ...

  4. pycharm打印出的汉字显示乱码

    pycharm未配置时,默认配置为: 打印汉字时显示乱码 简单设置即可 这下以后就没有问题了.

  5. OfficeCommandbarDesigner20170202.rar

    OfficeCommandbarDesigner用于对Office各个常用组件.VBE的工具栏进行查看和编辑的工具. 界面主要分为上下两个表格控件,上面的控件列举出所有Commandbar,下面的控件 ...

  6. Golang os/exec 实现

    os/exec 实现了golang调用shell或者其他OS中已存在的命令的方法. 本文主要是阅读内部实现后的一些总结. 如果要运行ls -rlt,代码如下: package main import ...

  7. VS2010 常用的快捷键

    1.强迫智能感知:Ctrl+J:2.强迫智能感知显示参数信息:Ctrl-Shift-空格:3.格式化整个块:Ctrl+K+F4.检查括号匹配(在左右括号间切换): Ctrl +]5.选中从光标起到行首 ...

  8. Invalid action class configuration that references an unknown class解决方案

    Sturts2整合后时出现诡异的异常: java.lang.RuntimeException: Invalid action class configuration that references a ...

  9. 深入JVM内核--常用JVM配置参数

    Trace跟踪参数 -verbose:gc -XX:+printGC 可以打印GC的简要信息 [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790K ...

  10. Web前端性能

    6.1前端性能示例 性能测试工具: Apache Benchmark(ab)得到的响应时间仅为从请求发出开始到接收到HTML的最后一个字节所消耗的全部时间.ab命令行如下: ab -c [并发用户数] ...