问题描述:用过Qt的朋友,都知道,完成的Qt程序,只能在QT环境里运行。在debug环境里,没有配置环境路线的情况下,必须包含多个dll库,然而每个dll库的大小确实很大的。但有时候还是会失败的,在一个完全没有QT的机子上,就会出现问题。即使运行需要的DLL库都有了,也会出现问题。

解决方法:

(1)DLL库还是有的,但我个人觉得这个办法挺笨的。谁让我们是初学者呢。

(2)在QT安装的文件夹下,找到plugins文件夹,注意,是文件夹(一般在和bin的同目录下)。然后将其文件整个拷贝到可执行exe的文件夹下。这个文件夹才90M左右。

(3)接着在你的main函数里开始的部分加入

QApplication::addLibraryPath("./plugins");

指明路径,这就是问什么,和exe程序放在一起了。

(4)最理想的方法应该是这个方法。(我们在请教了老师以后得到的)
  在前面3步方法的基础上,做一下修改就可了。
  (a)在方法(2)的基础上,plugins文件夹下,只留下platforms文件夹就可以了,其余的删除,然后platforms文件夹下,只留下qwindows.dll库就可以了,其余的删除。
    (也就是说,我们需要留下 plugins\platforms\qwindows.dll这样一个路径)
  (b)当然,exe目录文件夹下还是需要删除一些多余的dll的,具体留下的dll库,见图片:

折腾来折腾去,我们终于把上百兆的文件缩减到了几十兆的大小。

备注:各位路过的朋友,要是有什么好的解决办法,请多多留言。

Qt 5.3.1 版本应用程序的发布问题的更多相关文章

  1. linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本

    最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...

  2. linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本 以及x64上编译qt

    最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...

  3. Qt 程序打包发布总结

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

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

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

  5. Qt应用程序的发布

    1 Windows平台上的应用程序发布 Windows发布工具 windeployqt.exe是Qt自带的Windows平台发布工具.windeployqt.exe文件在Qt的bin目录下,Qt的每一 ...

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

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

  7. 项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”

    项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx” 编译新下载的代码出错 修改包管理器的源为 http://www.nuget.org/api/v2/ .重试后成功 ...

  8. 项目 Web 的 NuGet 程序包还原失败: 找不到“1.0.0”版本的程序包“Microsoft.Net.Compilers”。。 0

    项目   Web 的 NuGet 程序包还原失败: 找不到“1.0.0”版本的程序包“Microsoft.Net.Compilers”.. 0 使用vs的NutGet包管理器时,另一台电脑从svn下载 ...

  9. Vs 中关于项目中的某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”

    问题:     首先出现这个bug的是在我的vs2017社区版的ide上,这两天使用了出现了一个非常神奇的问题,就是我程序中的nuget包总提示找不到源文件,并且我点击Nuget还原的话还一直提示着一 ...

随机推荐

  1. delete drop truncate 区别

    truncate 删除内容,并释放空间,并不删除表结构,删除标识列,标识列重新从1开始delete 删除内容,不释放空间,不删除表结构,不删除标识列,标识列继续增加drop 直接删除表

  2. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  3. 联想扬天 电脑 键盘改默认fn功能键

    联想扬天电脑改键工具 windows 8 windows8.1 64位版本:http://support1.lenovo.com.cn/lenovo/wsi/Modules/DriverDetail. ...

  4. SQL获取所有数据库名、表名、储存过程以及参数列表

    SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...

  5. sql 返回xml类型的数据

    1, 这中方式可以在Item节点上加一个Items节点作为所有item节点的父节点 SELECT  Orders.OrderNumber ,        ( SELECT    ProductID ...

  6. Linux下一些文件夹的含义

    在 Linux系统里面,"分区",被称作"挂载点",简单明了的说,"挂载点"意思就是:把一部分硬盘容量,"分"成一个文件 ...

  7. ABP的Zero Sample

    下载自:https://github.com/aspnetboilerplate/module-zero 打开D:\ABP\module-zero-master\sample里的ModuleZeroS ...

  8. 子元素的div不继承父元素的透明度

    问题一: 如何让logo部变成这样: 步骤一:先收一个大的div,上面logo+nav再一个div,下面是三个div横排着: 步骤二:最主要的是如何让上面的部分变暗,而logo的颜色不变暗? 答案:在 ...

  9. php错误级别的设置方法

    PHP在运行时, 针对严重程度不同的错误,会给以不同的提示. eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 我们在开发中, 为了程序的规范性,把报 ...

  10. VS20xx IDE开发应用时_拷贝VS环境的库文件DLL到目标设备上运行的操作步骤

    问题场景: 当用VSIDE开发完一个项目,在部署到目标环境中时,配置文件OK,但是报错需要调试 <1>Deploying Visual C++ library DLLs as shared ...