Qt5程序在Windows 7/8上部署注意事项
来源:互联网 发布:网络犯罪调查女演员 编辑:程序博客网 时间:2024/06/07 23:02
和以往版本的QtSDK不同,Qt5.*对整个SDK结构进行了较大幅度的修改。以前4.*的代码移植到5.*版本上,需要更改的东西(包括QApplication、TextCodec等)也比较多。近日编译一个4.7.4的工程,略做微调顺利通过,然而在一台Windows 7测试机上运行时,总是报Runtime error,辗转几次之后这个发布问题终于解决。
首先要仔细看看官方的windows发布指南,qt5有着比较多的dll,下面就说一下qt5 dll依赖库,以及如何查询自己工程所用的dll及打包发布的方法。
QT 5的依赖链接库变得更多了,以下是QT 5程序所依赖的库:
1. 依赖库一览
1.1 QT模块库
Qt5Core.dll #QT核心库Qt5Gui.dll #QT Gui库Qt5Widgets.dll #QT Widgets库,QT 5中GUI程序基本都需要此dll#还有其他程序用到的Qt5XXX.dll
1.2 ICU(International Component for Unicode,Unicode工具)依赖库
icudt49.dll icuin49.dll icuuc49.dll1.3 QT插件库,Qt新增,注意路径必须正确
# 根据不同的程序,需要不同的插件库#例如 QT_DIR/plugins/*/*.dll# 需要将 platforms/*.dll,accessible/*.dll的文件结构保留# 放在你所编译的程序所在目录plugins/platforms/qwindows.dllplugins/accessible/qtaccessiblewidgets.dll
1.4 EGL依赖库,为OpenGL,OpenGL es提供接口
libEGL.dlllibGLESv2.dll
1.5 mingw依赖库(msvc编译则无需这些库)
libgcc_s_sjlj-1.dlllibstdc++-6.dlllibwinpthread-1.dll
1.6 VC运行库(mingw编译则无需这些库)
msvcr110.dll(对应VS2012)msvcp110.dll
2 文件结构
--platforms --qwindows.dll --*.dll--accessible --qtaccessiblewidgets.dll --*.dll--(other plugin folder) --*.dll--yourApp.exe--Qt5Core.dll--Qt5Gui.dll --Qt5Widgets.dll--icudt49.dll --icuin49.dll --icuuc49.dll--libEGL.dll--libGLESv2.dll--libgcc_s_sjlj-1.dll(mingw)--libstdc++-6.dll(mingw)--libwinpthread-1.dll(mingw)--msvcr110.dll(msvc)--msvcp110.dll(msvc)
3 结论
QT 5虽然有了ICU,Open GL的支持,还有c++11的支持,但是由于依赖的DLL实在是太多,着实有点不太方便。一个mingw编译的qt gui程序,光是依赖dll就有30-50M的依赖库,确实很不爽啊。不过7z压缩后有10M左右,还可以接受。
附:简化qt程序发布的动态库聚合法
Qt静态编译链接生成的exe文件,不需依赖七大姑八大姨的一堆dll,可以独立运行,发布很方便。但绝大多数用的都是Qt开源版本,如果用静态链接,会有些限制。那有没有办法即能享受静态编译的方便,又不受开源许可的限制呢?方法之一,就是用动态编译,然后把exe和需要的dll整合成一个文件,问题就解决了。
具体步骤:
1、先动态编译链接,生成exe文件
2、找到依赖的dll文件
这里,我们可以用Process Explore来获取所依赖的dll文件
下载:
http://pan.baidu.com/share/link?shareid=419262&uk=2701984065
打开procexp.exe,通过菜单View==》Lower Pane View==》DLLs 勾选,显示dll窗口
这里,我们以test.exe为例,
在Qt环境下,将exe运行起来,在ProcessExplor中,找到就可以找到test.exe,选中,在下面就看到依赖的dll了。
系统目录下的,一般不用关心,按Path排序,看Qt目录及mingw目录下的,将这些dll拷贝出来,单独放到一个目录下。
3、打包
打包工具,这里选用Enigma Virtual Box,
下载:
http://pan.baidu.com/share/link?shareid=419263&uk=2701984065
安装,运行
Enter Input File Name中,选择exe
Enter Output File Name,输出文件名称
点Add按钮,将前面准备好的dll文件,添加进来
点Files Options,勾选Enable Files Virtualization和Compress files,OK
最后,点Process,大告成。
- Qt5程序在Windows 7/8上部署注意事项
- Qt5程序在Windows 7/8上部署注意事项
- 在Windows部署JCMS注意事项。
- 如何在Windows 2003服务器上部署远程安装程序
- 如何在Qt5上运行Qt4程序
- 在Windows 7/Server 2008 R2上部署asp.net 1.1程序
- 在云服务器上部署分布式注意事项
- 在windows上部署freesshd
- 在windows上部署phpwind
- Windows Embedded Compact 7打包和部署程序 (上)
- Oracle在windows上的使用注意事项
- mongodb在windows上安装以及注意事项
- QT5.7 Windows下发布release程序
- Windows Server 2003上部署java程序
- SVG MVC2 程序在IIS 7上部署
- 在Windows 2003上部署.NET Framework1.1开发的COM+程序碰到的问题
- 使用EXCEL 数据导出程序在64位windows 2003上的部署
- 在windows平台上部署伪分布式系统开发hadoop程序
- java开发_模仿百度文库_OpenOffice2PDF_源码下载
- Android ProgressBar 自定义样式(七),仿真QQ聊天、网易新闻客户端加载图片Loading
- 流媒体播放-在线音乐(3)
- JNI 学习手记
- jeecms中的一些总结
- Qt5程序在Windows 7/8上部署注意事项
- oracle help报错SP2-0171: HELP system not available. 安装help
- select, iocp, epoll,kqueue及各种I/O复用机制
- 东软实训面试问题推荐2:如果我录用你,你将怎样开展工作?
- keytool+tomcat7配置HTTPS双向证书认证
- 拿来主义!最火的iOS开源项目(三)
- 程序猿自救指南之——如何拯救你的颈椎
- java开发_模仿百度文库_SWFTools_源码下载
- 收藏两个网站:Doc2Pdf、Pdf2Doc,都是在线处理