700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Qt5 在win7上发布 打包依赖dll生成exe方法

Qt5 在win7上发布 打包依赖dll生成exe方法

时间:2020-09-05 15:55:01

相关推荐

Qt5 在win7上发布  打包依赖dll生成exe方法

转自:/blog/qt-5%E7%A8%8B%E5%BA%8F%E5%9C%A8windows%E4%B8%8A%E7%9A%84%E5%8F%91%E5%B8%83/

/qimo601@126/blog/static/158220932291718389/

最近做了个qt的程序,但是发布程序比较困难,因为qt5有着比较多的dll,如下两篇详述了qt dll依赖库,以及如何查询自己工程所用的dll及打包发布的方法。

QT 5的依赖链接库变得更多了,摸索许久,又查阅了一些资料,总结出以下QT 5程序所依赖的库。

一、依赖库一览

1.QT模块库
2.ICU(International Component for Unicode,Unicode工具)依赖库
3.QT插件库,Qt新增,有点坑爹,路径必须正确
4.EGL依赖库,为OpenGL,OpenGL es提供接口
5.mingw依赖库(msvc编译则无需这些库)
6.VC运行库(mingw编译则无需这些库)

二、文件结构

三、总结

说实话,QT 5虽然有了ICU,Open GL的支持,还有c++11的支持,但是由于依赖的DLL实在是太多,着实有点不太方便。一个mingw编译的qt gui程序,光是依赖dll就有30-50M的依赖库,确实很不爽啊。不过7z压缩后有10M左右,还可以接受

Qt静态编译链接生成的exe文件,不需依赖七大姑八大姨的一堆dll,可以独立运行,发布很方便。但绝大多数用的都是Qt开源版本,如果用静态链接,会有些限制。那有没有办法即能享受静态编译的方便,又不受开源许可的限制呢?方法之一,就是用动态编译,然后把exe和需要的dll整合成一个文件,问题就解决了。

具体步骤:

一,先动态编译链接,生成exe文件

二,找到依赖的dll文件

这里,我们可以用Process Explore来获取所依赖的dll文件

下载:

/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拷贝出来,单独放到一个目录下。

三,打包

打包工具,这里选用Enigma Virtual Box,

下载:

/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,大告成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。