Decrease intent to increase space usage on mobile.
.. -*- coding: utf-8; -*-
.. include:: HEADER.rst
===========================
Reducing binary code size
===========================
.. contents::
Common receipt
==============
Configure build with disabling unused features e.g.::
$ ./configure --without-png
Link dynamically instead statically (on your platform shared library may be
already present).
Avoid debug build. Make release/final build instead debug.
Use packers. Packer compress binary so binary smaller. When program load
decompress itself, so startup time increase.
Binary packers::
http://upx.sourceforge.net
Home page.
GCC
======
Use ``-Os`` when produces ``*.o`` files.
Use ``-s`` when produces executable. And ``--remove-section=.comment`` and
``--remove-section=.note"``.
Use::
$ strip --strip-all <executable>
and::
$ gcc -ffunction-sections -fdata-sections -c -o my.o my.c
$ gcc -Wl,--gc-sections -o my my.o
MSVC
====
Use ``/Os`` when produces ``*.obj`` files.