[Qt-creator] optimization and file size between versions

Oleksii Serdiuk contacts at oleksii.name
Sun Sep 29 16:22:25 CEST 2013


Hello Dane,

Do you build Qt yourself? Prebuilt Qt binaries always default to release 
build (CONFIG+=release), unless you pass CONFIG+=debug to qmake. 
However, when you build Qt yourself, depending on configure options you 
specify, it can default to debug build (CONFIG+=debug) and you have to 
specify CONFIG+=release explicitly if you want to build in release mode. 
AFAIK, Qt Creator assumes that Qt defaults to release build so it 
doesn't explicitly pass CONFIG+=release to qmake.

On 27.09.2013 16:28, Duane wrote:
> On 9/27/2013 10:18 AM, Duane wrote:
>> On 9/27/2013 9:51 AM, Orgad Shaneh wrote:
>>>
>>> בתאריך 2013 9 27 16:49, מאת "Duane" <duane.hebert at group-upc.com
>>> <mailto:duane.hebert at group-upc.com>>:
>>>    >
>>>    > On 9/27/2013 9:43 AM, Ziller Eike wrote:
>>>    > >
>>>    > > On 27.09.2013, at 14:52, Duane <duane.hebert at group-upc.com
>>> <mailto:duane.hebert at group-upc.com>> wrote:
>>>    > >
>>>    > >> On 9/27/2013 8:21 AM, Orgad Shaneh wrote:
>>>    > >>>
>>>    > >>> בתאריך 2013 9 27 15:15, מאת "Duane" <duane.hebert at group-upc.com
>>> <mailto:duane.hebert at group-upc.com>
>>>    > >>> <mailto:duane.hebert at group-upc.com
>>> <mailto:duane.hebert at group-upc.com>>>:
>>>    > >>>>
>>>    > >>>> I have Qt Creator version 2.7.2 and am using Qt 4.8.4.  My
>>> colleague has
>>>    > >>>> Qt Creator version 2.4.1 and is using Qt 4.8.1.  We are both
>>> running the
>>>    > >>>> Fedora 16.  We use the same project file and this project
>>> doesn't use
>>>    > >>>> the Qt libs.
>>>    > >>>>
>>>    > >>>> The .pro file has
>>>    > >>>> TEMPLATE = app
>>>    > >>>> CONFIG += console
>>>    > >>>> CONFIG -= qt
>>>    > >>>>
>>>    > >>>>
>>>    > >>>> When he builds he gets an executable 1.5Mb.  When I build, I get an
>>>    > >>>> executable of 10.6Mb  Both are release builds.  We both use the same
>>>    > >>> libs.
>>>    > >>>>
>>>    > >>>> What can cause this?  How is optimization done here?  We build
>>> the same
>>>    > >>>> project for Windows in Visual Studio and the exe files are the
>>> same size
>>>    > >>>> but we've set the same optimization.
>>>    > >>>>
>>>    > >>>> _______________________________________________
>>>    > >>>> Qt-creator mailing list
>>>    > >>>> Qt-creator at qt-project.org <mailto:Qt-creator at qt-project.org>
>>> <mailto:Qt-creator at qt-project.org <mailto:Qt-creator at qt-project.org>>
>>>    > >>>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>>>    > >>>
>>>    > >>> Can you paste the build output for both machines? A single file gcc
>>>    > >>> invocation and a single linker invocation should be enough (if the
>>>    > >>> project is not very complex).
>>>    > >>>
>>>    > >>
>>>    > >>
>>>    > >> This would be quite a bit.  It's not a simple project.  But I have
>>> tried
>>>    > >> a few things.  My Qt Creator SDK installation installed Qt 5.1.  So I
>>>    > >> switched the kit to use this.  My build size goes from 10.6Mb to
>>> 8.6Mb.
>>>    > >>   This was surprising.  So then I found my older version of Qt
>>> 4.8.1.  I
>>>    > >> switched to that one and my file size becomes the same as my
>>> Colleague.
>>>    > >>   1.5Mb.  So it's definitely the Qt version affecting this.  AFAIK
>>> these
>>>    > >> versions were installed with Qt Toolkits and not build manually.
>>>     So I'm
>>>    > >> not sure what the difference would be.  I would maybe understand
>>> this is
>>>    > >> I was using any Qt libs but we're not for this application.  Make
>>> flags
>>>    > >> look the same on the two systems.  I don't get it.
>>>    > >
>>>    > >
>>>    > > debug vs release build maybe?
>>>    > >
>>>    >
>>>    > I started to say no, but then again when I switch from release to debug
>>>    > the file size doesn't change.  Something is broken here.  But when I
>>>    > switch to 4.8.1 things seem ok.  I am currently building 4.8.5 to try
>>>    > that and see if it makes a difference.
>>>    >
>>>    > _______________________________________________
>>>    > Qt-creator mailing list
>>>    > Qt-creator at qt-project.org <mailto:Qt-creator at qt-project.org>
>>>    > http://lists.qt-project.org/mailman/listinfo/qt-creator
>>>
>>> Try adding "QT=" to your project.
>>>
>>
>>
>> Didn't help.  One thing that I do notice is that I don't see +=Release
>> in the build string:
>>
>> 10:04:08: Starting: "/usr/bin/qmake-qt4"
>> /home/duane/QtSDK/PT500Projects/visu32/visu32.pro -r -spec linux-g++
>> 10:04:08: The process "/usr/bin/qmake-qt4" exited normally.
>> 10:04:09: Starting: "/usr/bin/make"
>> g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
>> -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom
>> -fasynchronous-unwind-tables -O2 -Wall -W -Wno-write-strings
>> -Wno-unused-parameter -Wno-unused-variable -DBPP32 -DPT470BUILD
>> -I/usr/lib/qt4/mkspecs/linux-g++ -I../visu32
>> -I../../../SVN_Repos/PT470Development/src/include
>> -I../../../SVN_Repos/PT470Development/OpenGUI/src
>> -I../../../SVN_Repos/PT470Development/OpenGUI/src -I../visu32 -I. -o
>> main.o ../../../SVN_Repos/PT470Development/src/visu32/main.cpp
>> ...
>
>
>
> When I build with 4.8.1 is see this:
>
> 10:20:09: Starting: "/home/duane/QtSDK/Desktop/Qt/4.8.1/gcc/bin/qmake"
> /home/duane/QtSDK/PT500Projects/visu32/visu32.pro -r -spec linux-g++
> CONFIG+=release
> 10:20:09: The process "/home/duane/QtSDK/Desktop/Qt/4.8.1/gcc/bin/qmake"
> exited normally.
> 10:20:09: Starting: "/usr/bin/make"  ...
>
>
> The =+release is there.
>
>
> _______________________________________________
> Qt-creator mailing list
> Qt-creator at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator
>

-- 
With best regards,
Oleksii Serdiuk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4813 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20130929/789c751d/attachment.bin>


More information about the Qt-creator mailing list