今天在发布QT5程序的时候发现依赖的DLL相较于QT4多了很多,如果使用动态编译的话,一个最简单的GUI程序需要以下这些库的支持:

同时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的三个库),还是可以接受的。