QT5.4 计算器程序 打包&发布,解决dll的最新解决方案
QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了。
QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一份,放在软件的目录里面。
参考官方文档:http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies
具体使用步骤如下:
1.添加qt的bin/目录进系统path变量。很简单,在系统属性里设置,添加D:\QT\QT5.4.1mingw\5.4\mingw491_32\bin;(分号不能掉)到系统path环境变量(不会添加环境变量问度娘)
第二部,在任意目录新建文件夹,把编译完成后的Calc.exe可执行程序拷贝过去。从命令行模式进入该文件夹,执行语句windeployqt Calc.exe. 之后该工具会分析程序依赖性,自动添加必要dll文件至该目录。运行时命令行提示如下:
D:\e>windeployqt Calc.exe
D:\e\Calc.exe bit, release executab
Adding Qt5Svg for qsvgicon.dll
Direct dependencies: Qt5Core Qt5Gui Qt
All dependencies : Qt5Core Qt5Gui Qt
To be deployed : Qt5Core Qt5Gui Qt
Updating icuin53.dll.
Updating icuuc53.dll.
Updating icudt53.dll.
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Creating directory iconengines.
Updating qsvgicon.dll.
Creating directory imageformats.
Updating qdds.dll.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjp2.dll.
Updating qjpeg.dll.
Updating qmng.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory platforms.
Updating qwindows.dll.
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_de.qm...
Creating qt_fi.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm... D:\e>
这样必要的库文件就自动添加完毕.
2.一般情况下,还是会少一两个.dll 用depends软件检测一下,看看还缺什么?
找到除了API-MS的包,在D:\QT\QT5.4.1mingw\5.4\mingw491_32\bin目录里面复制到软件的根目录。
3.前两步下来,dll彻底找完了,现在就该轮到打包工具 EnigmaVirtual Box
在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)
点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。
在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)
点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。
这样你就成功了。
Qt5.4 主要依赖链接库说明
1.QT模块库
1 2 3 4 |
Qt5Core.dll #QT核心库 Qt5Gui.dll #QT Gui库 Qt5Widgets.dll #QT Widgets库,QT 5中GUI程序基本都需要此dll #还有其他程序用到的Qt5XXX.dll |
2.ICU依赖库
(International Component for Unicode,Unicode工具)
1 2 3 |
icudt51.dll icuin51.dll icuuc51.dll |
3.QT插件库(新增库,路径必须正确)
1 2 3 4 5 6 |
# 根据不同的程序,需要不同的插件库 #例如 QT_DIR/plugins/*/*.dll # 需要将 platforms/*.dll,accessible/*.dll的文件结构保留 # 放在你所编译的程序所在目录 plugins/platforms/qwindows.dll plugins/accessible/qtaccessiblewidgets.dll |
4.EGL依赖库,为OpenGL,OpenGL es提供接口
1 2 |
libEGL.dll libGLESv2.dll |
5.mingw依赖库(msvc编译则无需这些库)
1 2 3 |
libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll |
6.VC运行库(mingw编译则无需这些库)
1 2 |
msvcr110.dll(对应VS2012) msvcp110.dll |
最后发一张程序的效果图,附带上程序和源代码的下载链接:http://pan.baidu.com/s/1dD1y8wh 密码:oa9h
QT5.4 计算器程序 打包&发布,解决dll的最新解决方案的更多相关文章
- QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)
QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...
- Qt 程序打包发布总结
1. 概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...
- Qt开发北斗定位系统融合百度地图API及Qt程序打包发布
Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- c# 项目带皮肤一起打包发布解决办法
c# 项目带皮肤一起打包发布解决办法 前提:c#语言 winform应用程序 皮肤为IrisSkin2 目标:在打包发布独立应用 程序时,将皮肤也一起打包发布,实现程序在其它机子安装时,皮肤效果 ...
- 4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)
https://blog.csdn.net/windsnow1/article/details/78004265 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台win ...
- QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)
最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...
- Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)
Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...
- QT程序打包发布
本来感觉这是一个简单的操作,今天看见群里有人在问这个问题,他说网上查了很多都不成功,突然就想把自己初学的时候记录一下! 题目谢了QT程序的打包发布,那就是两步骤:打包+发布! 注释:这篇博文用的是Qt ...
随机推荐
- java05
RGB(红绿蓝)- 全0就是黑色,全是最高255就是白色. //第一步类 package cn.bjsxt.test; import java.awt.Color; import java.awt.F ...
- Java基础知识强化之IO流笔记54:IO流练习之 LineNumberReader的特有的功能使用
1. LineNumberReader的特有的功能: BufferedReader |--LineNumberReader public int getLineNumber():获得当前行号. ...
- Android(java)学习笔记141:各种边距设置
1. android:layout_paddingLeft 内边距,对谁用,指的是谁的内部内容边距 2. android:layout_marginLeft 外边距,对谁用,指的是谁距离外层容器的边距 ...
- dependencies与devDependencies的区别
npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件: –save –save-dev 但它的文档里1,只提到一个小区别,–save会把依赖包名称 ...
- string与StringBuilder之性能比较
知道“StringBuilder比string性能强”好多年了,近日无聊病发作,就把这两个家伙给动了手术: using System; using System.Text; namespace Con ...
- 推荐几个对Asp.Net开发者比较实用的工具 2
推荐几个对Asp.Net开发者比较实用的工具.大家有相关工具也可以在评论区留言,一起努力学习. 作为程序员要有挑战精神,大家可以尝试一下这些工具. 已经有篇文章写到了vs的扩展工具,这里不再累赘,请查 ...
- [ lucene高级 ] 研讨如何进行Lucene的分布式应用
http://www.cnblogs.com/huangfox/archive/2010/10/15/1852206.html Lucene是个高度优化的倒转索引搜索引擎.它将倒转的索引存储在定制的文 ...
- SQL Server游标+延迟执行简介
在项目测试中,我们可能会使用批量生成数据来测试程序的性能. 这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以GETDATE()函数获得的时间基本上也是一样的,而我们又要求生成每条数 ...
- MVC小系列(十六)【在控制器级别或具体Action级别上动态设定模板页(Layout)】
方法就是使用:ActionFilterAttribute它的几个方法:OnActionExecuted,OnActionExecuting,OnResultExecuted和OnResultExecu ...
- MyEclipse2014中项目名更改后如何使用新的项目名部署到Tomcat中去
在项目中调试的时候突然发现我复制的项目(项目名修改过了)部署在Tomcat中运行的时候还是显示的是原来的项目名,以至于我使用新的项目名称作为URL请求竟然是404,我去,当时感觉就不怎么好了. 当然, ...