关于Windows系统上QT5的程序发布
今天在发布QT5程序的时候发现依赖的DLL相较于QT4多了很多,如果使用动态编译的话,一个最简单的GUI程序需要以下这些库的支持:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
icudt49.dll #ICU(International Component for Unicode,Unicode工具)依赖库 icuin49.dll #ICU依赖库 icuuc49.dll #ICU依赖库 libEGL.dll #EGL依赖库,为OpenGL提供接口 libgcc_s_sjlj-1.dll #mingw依赖库 libGLESv2.dll #EGL依赖库,为OpenGL es提供接口 libstdc++-6.dll #mingw依赖库 libwinpthread-1.dll #mingw依赖库 Qt5Core.dll #QT核心库 Qt5Gui.dll #QT Gui库 Qt5Widgets.dll #QT Widgets库,之前的GUI库被分成了Gui和Widgets两个库 platforms/qminimal.dll platforms/qwindows.dll #平台相关dll |
同时qt的一些功能被提取到了plugins目录中,比如要读取jpg文件就需要把plugins/imageformats/qjpeg.dll拷贝到发布目录的imageformats/qjpeg.dll中。
总计大小约33MB,其中最坑爹的是ICU的三个库,占用空间竟然达到了接近20MB!
由于ICU只在QT的webkit被使用,所以如果不需要使用webkit的话可以去掉icu支持。而去掉icu支持需要–重新编译qt,并使用 -no-icu参数。
另外,使用aspack可以有效的压缩dll文件的大小,所有文件压缩完成之后大概大小是10MB多一点(包含icu的三个库),还是可以接受的。
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,转载请注明作者及原网址。
智慧的分享!