QT5.4 计算器程序 打包&发布,解决dll的最新解决方案
2015-07-01 21:40
549 查看
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文件至该目录。运行时命令行提示如下:
这样必要的库文件就自动添加完毕.
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模块库
2.ICU依赖库
(International Component for Unicode,Unicode工具)
3.QT插件库(新增库,路径必须正确)
4.EGL依赖库,为OpenGL,OpenGL es提供接口
5.mingw依赖库(msvc编译则无需这些库)
6.VC运行库(mingw编译则无需这些库)
最后发一张程序的效果图,附带上程序和源代码的下载链接:http://pan.baidu.com/s/1dD1y8wh 密码:oa9h
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 32 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 |
(International Component for Unicode,Unicode工具)
1 2 3 | icudt51.dll icuin51.dll icuuc51.dll |
1 2 3 4 5 6 | # 根据不同的程序,需要不同的插件库 #例如 QT_DIR/plugins/*/*.dll # 需要将 platforms/*.dll,accessible/*.dll的文件结构保留 # 放在你所编译的程序所在目录 plugins/platforms/qwindows.dll plugins/accessible/qtaccessiblewidgets.dll |
1 2 | libEGL.dll libGLESv2.dll |
1 2 3 | libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll |
1 2 | msvcr110.dll(对应VS2012) msvcp110.dll |
相关文章推荐
- QThread中的互斥、读写锁、信号量、条件变量
- 从pthread 到QThread
- Qtouch技术
- QtCreator 快捷键
- vs2012识别不了QT5.2.0的头文件
- QWT编译、配置、使用(VS2010 + Qt5.1.0)
- MQTT的学习研究(八)基于HTTP DELETE MQTT 订阅消息服务端使用
- MQTT的学习研究(七)基于HTTP POST MQTT 发布消息服务端使用
- qt5.4编译最新版本qwt6.1.x
- beaglebone black 的Qt开发环境搭建
- 基于QT的异质链表实例
- Qt插件制作笔记part1
- Qt获取当前时间
- vs2013编译qt程序后中文出现乱码
- Qt中解决 QLabel 点击事件通过qss+focuspolicy方法实现
- QT问题总汇
- Qt获取窗口信息
- MQTT3.1与UDP时效性分析
- Qt第三方库QCustomPlot——认识图表的各个部分
- VS2010+QT5编程之用QTabWidget写标签页(页码)的注意事项