文档章节

Qt发布程序

C
 C狸扣豆
发布于 2014/11/26 13:29
字数 459
阅读 61
收藏 0

在Windows下用的Qt发布程序,会遇到动态链接库的选取问题。

在使用QtCreator的时候,所编译生成的程序所使用的链接库,在运行时qt会负责给你链接需要的动态库,但是如果自己直接去运行该程序就可能会没有反应。

需要明确的就是,只要编译出来运行的程序没有任何问题,如果直接运行有问题,那就是链接库的问题。

可以采取的方案是:

  • 使用工具去加载你的程序看看,需要哪些,然后到到你的qt版本下的bin文件夹下拷贝对应的库文件。不能做到全部全,而且里面会很罗嗦。

  • 把所有的../bin/*.dll全部拷贝出来,把所有的/plugins/下的都拷贝出来,这两样作为一个模板,以后就使用该模板

介绍第二种方法:

  1.     先在你的程序的main(..) 的cpp 下,加上

       

  2. QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath() ) + QDir::separator() + "plugins");
    app.addLibraryPath(strLibPath);//app就是你的主QApplication 对象
  3. 编译,并把程序拷贝到刚才建的模板下。

  4. 根据需要你可以把*d4.dll的全部删除,每个dll都有两个,带d的表示是debug版本的,发布的时候一般不用d版本dll

  5. 把程序运行起来,把dll和plugins的里面的删除,可以删掉的就是不需要的,删不掉的会提示你文件被占用,这就是需要的。这样可以保证你的dll最精简,最需要。因为有时候即使plugins里面一些库没有,程序也可以运行,但是会有一些出入,比如一些图片插件库等等。

© 著作权归作者所有

C
粉丝 0
博文 24
码字总数 9890
作品 0
马鞍山
私信 提问
Qt官方开发环境生成的exe发布方式--使用windeployqt

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll, 如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。 因此 Qt 官方开发环境里自带了...

乔三爷
2015/09/05
5.4K
0
Qt 5.9 Beta 发布,将微调 Qt 的发布流程

Qt 5.9 Beta 发布了。 与Qt 5.6 LTS相比,该版本添加了许多新功能,例如充分利用C ++ 11,新配置系统,新的图形架构,新的Qt Quick Controls组合,更好地支持Wayland多进程,Qt 3D等等。同事...

zjzdy
2017/04/07
3.8K
13
如何打包发布基于Qt4 Windows的软件

先从Windows平台开始。 Windows平台下的软件发布最主要的需求是想办法找到在你的发布中应该包含哪些必须的文件, 同时要保证应用程序运行时能正确找到这些文件, 发布基于Qt的软件也是同样的...

barsoom
2012/11/28
298
0
Qt 安装包制作框架--Qt Installer Framework

Qt Installer Framework 是 Qt 官方提供的安装包制作框架。 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布。这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执...

Force武装卫队
2015/04/08
8.1K
1
Digia 成立“The Qt Company”全资子公司

2014 年 9 月 16 日– 芬兰赫尔辛基 –Digia 公司宣布成立“The Qt Company”全资子公司,以进一步推动 Qt 产品的开发和市场扩张。同时公布的还有 The Qt Company 公司全新的 Qt 产品网站 ww...

张RH
2014/09/17
4.1K
19

没有更多内容

加载失败,请刷新页面

加载更多

500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
8
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部