[SOLVED] In order to execute an .exe i need 387 mb of dlls.?
-
I need all these dlls in order to run the .exe file via explorer..
!http://i.imgur.com/JSEACWy.png(1)!totalling 387 mb
the part i don't understand, is in order for a friend to run this exe what should i sent him?
-
Are you building in debug mode?
-
[quote author="TEDSON" date="1387324223"]Are you building in debug mode?[/quote]
O know i get the use of release.
If i use release, then the .exe files needs 44mb of dlls in order to be opened from file explorer
Still seems like a big number.Will those files get even more smaller at the installation file ? And when they get extracted to the installation folder they will be 44 mb?
EDIT: Now that i check, they get compressed to a 13mb rar file, so i am sure they will get even smaller at the installation file! :)
-
I certainly hope so.
When I create the same application in VS2010 without Qt my binary file is 127k and needs no dlls to run on other systems.
Qt Creator makes it 30 odd MB and dlls.
I looked at using Qt because someone told me it's easier to create windows/guis, but I'm not sure trade off is too high for simple gui tools.
I'll hope there's a better solution using VS2010 add-in.
-
Actually, an application written on Visual Studio also have a lot of dependencies. But all necessary files are part of Windows operation system and already present in almost all systems.
Take for example application for .NET Framework which probably already is installed with Windows Updates, but if it isn't you have to install about 70 MB only for the latest version 4.5.1 and version 3.5 is 200 MB.
Advantage of Qt is that it is supported on much more operation systems. On every one of them if you already have the necessary files installed, you can distribute only your program - same behaviour as .NET Framework. -
That all sounds very correct.
Is there a way I can include only Qt Gui libraries? -
You are actually missing the windows runtime libraries (msvcrXX.dll and msvcpXX.dll stuff) so there's a good chance this won't work on some other machines. It will if user has already installed it with some other software though.
There are a few ways to decrease the size of your deployment. The elephant in the room is the ICU library. If you don't really use its features you can compile Qt iwth the -no-icu switch (note that it's required for webkit). This will drop the ICU dependency.
Next, you can statically link to the windows runtime and compiler runtime. This will fatten a little your exe but reduce the number of files to deploy and decrease the overall deplyment size. Note however that this is not recommended if your app has several modules (exe and dlls) as each one of them needs to be linked to the same version of crt.
The biggest oportunity is when you're a commercial customer (non GPL/LGPL). You can link to Qt statically, which again will fatten your exe a little, but only with the stuff you actually use from these dlls that you can drop now.