Minimal icudt51.dll, icudt52.dll, icudt53.dll, icudt54.dll and icudt55.dll
-
Hi, so I've spent a few hours on this topic and found...nothing (really) helpful.
Qt 5 is great, nothing to say, but it's also terrible for some aspects.
If you were used to Qt 4.8, you will find a few things on Qt5 giving you hard times.For example, deploying a hello world application in Windows will have an (unacceptable) size of around 30MB !
This because Qt5 adopted ICU, which is great if you work heavily with internationalization and Webkit.
However, even if you don't deploy QtWebkit, you still need 3 DLLs for the marvellous size of 26,4MB.So you have 2 options:
- build Qt5 with no ICU support (takes a few hours on a good computer)
- build ICU with a reduced data file
It sounds incredible to me that someone is forced with one of those options, but moreover I am puzzled by the fact that I haven't been able to find a minimal icudt51.dll around the internet, even though the Qt community is huge.
So, here we go, minimal DLLs built with MinGW 4.8 and 4.9 32bit.
I created the basic dat file using this: http://apps.icu-project.org/datacustom/ICUData51.html
I disabled everything except for- Base Data
- Rule Based Number Format
- Formatting, Display Names and Other Localized Data
I used this great guide to build ICU: http://qt-project.org/wiki/Compiling-ICU-with-MinGW
This is not an official DLL certified by the Qt project, so use it at your own risk. No viruses or crap inside. No VS compatibility granted. (even though it should work. If it does, be a gentleman and say it)
Version 51 for Qt 5.1.x: http://www.qlcplus.org/misc/icudt51.dll (711Kb)
Version 52 for Qt 5.3.x: http://www.qlcplus.org/misc/icudt52.dll (724Kb)
Version 53 for Qt 5.4.x (thanks to frankiefrank): http://www.qlcplus.org/misc/icudt53.dll (834Kb)
Version 54 for Qt 5.5.x: http://www.qlcplus.org/misc/icudt54.dll (812Kb)
Version 55 for latest Qt in MSYS2: http://www.qlcplus.org/misc/icudt55.dll (717Kb) -
Hi mcallegari79,
Thank you for sharing your work! Lots of people have been asking for something like this.
-
I found yet how to do that libraries icudt51.dll (22MB) icuin51.dll (3.5MB) icuuc51.dll (2Mb) were not needed at all.
-
Thank you for this. I will try this later for Qt 5.4 (which comes with icudt53.dll) and VS2010. Guess this is the relevant Wiki: http://qt-project.org/wiki/Compiling-ICU-with-MSVC
-
Thank you for this. I will try this later for Qt 5.4 (which comes with icudt53.dll) and VS2010. Guess this is the relevant Wiki: http://qt-project.org/wiki/Compiling-ICU-with-MSVC
-
[quote author="maniek1310" date="1393184654"]I found yet how to do that libraries icudt51.dll (22MB) icuin51.dll (3.5MB) icuuc51.dll (2Mb) were not needed at all.
https://github.com/jakoch/qt-mini-deploy[/quote]
They re-built Qt without the ICU support. Exactly what I wanted to avoid...
-
[quote author="maniek1310" date="1393184654"]I found yet how to do that libraries icudt51.dll (22MB) icuin51.dll (3.5MB) icuuc51.dll (2Mb) were not needed at all.
https://github.com/jakoch/qt-mini-deploy[/quote]
They re-built Qt without the ICU support. Exactly what I wanted to avoid...
-
Hello,
can you please also make minimized version of ICU 5.4 for Qt 5.5 use?Thank You!
-
@Andriy-Gerasika said:
Hello,
can you please also make minimized version of ICU 5.4 for Qt 5.5 use?Thank You!
Upped ! See modified post. (I replied also on stackoverflow)
-
Also remember that among the many niceties that 5.5 brings, is that Qt5Core has stopped depending on the ICU DLLs
In other words, for many Qt apps that means don't need to ship the ICU DLLs at all, neither in the humongous original size or the optimized ones (just verified that with my own apps).
Edit: if you disable the Help plugin, you can even perform this stunt with Qt Creator (i.e. removing the icu*.dlls from C:\Qt\Tools\QtCreator\bin)
-
@hskoglund Thanks for the confirmation !
I was pretty sure I read it somewhere and I was a bit surprised when they asked for an ICU DLL for Qt 5.5.
So we'll finally being able to deploy a hello world application weighing less than 30 megs ! :)Just one question though. The other day I built Qt 5.5.0 on Linux and I noticed there's still the -icu/-no-icu option.
Does it means that enabling it will affect only QtWebKit/QtWebEngine or will it fall down to QtCore thus bringing the issue back ?
How is the Digia Windows build configured ?Thanks !
-
Agreed, this is indeed excellent news (except that now I really have to update my blog post about deploying Qt :-(
Anyway, about your build question, I haven't tested building myself. But reading the comments in that bug report: what they did for 5.5 was removing "-icu" when building Qt. Turns out QtCore was cleansed from any dependencies already in 5.4. but removing the switch did the trick...
-
Thank you very much for this!
Could someone make it clear though what icudt dlls are used for in a program? If I've built a program that's now an .exe with the .dll dependancies I can see that running the .exe does use these ICU dll BUT deleting them doesn't change anything?